折半查找Java语言描述

思路

每一次查找,将查找的区间从中间分为两部分,若查找值大于中间的元素,则在右侧区间继续查找;若查找值小于中间的元素,则在左侧区间继续查找。

特点

折半查找的先决条件是查找表中的数据元素必须有序。

代码

public int binarySearch(Comparable[] a,Comparable findElem)
{
    int low=0;
    int high=a.length()-1;
    int mid;
    while(low<=high)
    {
        mid=(low+high)/2;
        if(findElem<a[mid])
            high=mid-1;
        if(findElem>a[mid])
            low=mid+1;
        if(findElem==a[mid])
            return mid;
    }
    return -1;
}

时间复杂度为O(log2n)。

猜你喜欢

转载自blog.csdn.net/weixin_42729072/article/details/107446631
今日推荐