首页 > 技术文章 > bsearch

wang992997290 2019-02-28 14:44 原文

二分查找时在给定已按升序排好序的n个元素a[0:n-1], 用折半查找法在从这n个元素中找出一特定元素x,时间复杂性为O(logn)。

具体实现如下:
复制代码
//二分查找
static int binarySearch(int []a, int x, int n)
{
    int left = 0,right = n-1;
    int middle;
    while (left <= right)
    {
        middle = (left+right)/2;
        if (x == a[middle]) return middle;
        if (x > a[middle]) left = middle + 1;
        else right = middle - 1;
    }
    return -1;
}

  

推荐阅读