二分查找法

Posted woxiaosade

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分查找法相关的知识,希望对你有一定的参考价值。

介绍

二分查找法是一种十分基础的算法,他可以使得搜索的复杂度变为O(logn),每次写二分查找,都免不了调试边界条件,故写下此文,以后写二分查找好有统一写法。

代码

int binary_search(int *a, int val, int l, int r){
    int ans = -1;
    while(l <= r){
        int mid = (l + r) >> 1;
        if(a[mid] < val)
            l = mid + 1;
        else if(a[mid] > val)
            r = mid + 1;
        else{
            ans = mid;
            break;
        }
    }
    return ans;
}

以上是关于二分查找法的主要内容,如果未能解决你的问题,请参考以下文章

Jdk之中的二分查找法

简单算法------二分查找法

二分查找法

二分查找法

二分查找法

算法丨二分查找法