这次一定要记住二分查找!

int binary_search(int * arr, int n, int key) {
    int low = 0;
    int high = n - 1;
    int mid;
    while (low <= high) { //注意这里是“<=”
        if (arr[low] == key) {
            return low;
        } 
        if (arr[high] == key) {
            return high;
        }
        mid = (low + high) / 2;
        if (arr[mid] == key) {
            return mid;
        }
        if (arr[mid] < key) {
            low = mid + 1; //注意这里不是low = mid
        }
        else {
            high = mid - 1; //主义这里不是high = mid
        }
    }
    return -1;
}

先记住一种,后续还会更新。

posted @ 2017-01-04 11:14  学渣也要找工作!  阅读(165)  评论(0)    收藏  举报