二分查找算法

2019-05-04  本文已影响0人  jackey912

二分查找也称折半查找,是一种比较高效的查找算法,二分查找要求线性表必须是顺序存储结构,而且表中元素要按关键字有序排列。

查找过程

假设线性表按升序排列,将表中间位置的元素与要查找的元素进行比较,如果相等,则查找成功,否则利用中间位置将表分成前后两个子表,如果中间位置的元素大于要查找的元素,则查找前一子表,否则查找后一子表。重复以上过程,直到查找到满足条件的记录。查找算法实现代码如下:

public static int binarySearch(int srcArray[], int key) {
        int mid = srcArray.length / 2;
        if (key == srcArray[mid]) {
            return mid;
        }

        int start = 0;
        int end = srcArray.length - 1;
        while (start <= end) {
            mid = (end - start) / 2 ;
            if (key < srcArray[mid]) {
                end = mid - 1;
            } else if (key > srcArray[mid]) {
                start = mid + 1;
            } else {
                return mid;
            }
        }
        return -1;
    }

时间复杂度为O(logn)

上一篇 下一篇

猜你喜欢

热点阅读