对分查找法(二分查找法,折半查找法)

二分查找法是针对已经排好序的序列进行查找

每次折半查找

算法时间复杂度,对于长度为N的序列,每次执行N/2,假设k次结束,最后到第一个N/2^k=0,所以k=logN

时间复杂度logN

int binarysearch(const int array[], int x, int N) {
    int low, mid, high;
    low = 0, high = N - 1;
    while (low <= high) {
        mid = (low + high) / 2;
    if(array[mid] < x)
    low=mid+1;
    else if(array[mid] > x)
    high=mid-1;
    else
    return mid; 
}
return -1;
}

 

转载于:https://www.cnblogs.com/loongqiang/p/3809170.html

你可能感兴趣的:(对分查找法(二分查找法,折半查找法))