美文网首页
二分查找算法

二分查找算法

作者: jackey912 | 来源:发表于2019-05-04 17:15 被阅读0次

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

    查找过程

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

    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)

    相关文章

      网友评论

          本文标题:二分查找算法

          本文链接:https://www.haomeiwen.com/subject/rzxfoqtx.html