自我学习 - C++ 折半查找

折半查找,这个非常简单

#include <iostream>

using namespace std;

// 折半查找
int Binary_search(int a[], int len, int key) {
    int low = 0, high = len - 1, mid;
    while (low <= high) {
        //设置中间值
        mid = (low + high) / 2;
        if (key == a[mid]) {//若中间值与key相等,则查找成功
            return mid;
        } else if (key > a[mid]) { //若key大于中间值,则去后半段找
            low = mid + 1;
        } else { //若key小于中间值,则去后半段找
            high = mid - 1;
        }
    }

    //查找失败返回-1
    return -1;
}

int main(){
    int a[6] = {0, 66, 77, 42, 78, 99};
    int x = Binary_search(a, 6, 66);
    cout << x << endl;
    return 0;
}

  

posted @ 2021-03-17 23:08  adamweng  阅读(189)  评论(0)    收藏  举报