编辑代码

#include <iostream>
using namespace std;

//二分查找
bool Search(int arr[], int n, int k) {
    int left = 0;     //查找区间的左边界
    int right = n - 1; //查找区间的右边界
    while (left <= right) {
        int mid = (left + right) / 2; //查找区间的中间位置
        if (arr[mid] == k) {
            return true;   // 找到了
        } else if (arr[mid] > k) {
            left = mid + 1;   // 在右半部分查找
        } else {
            right = mid - 1;    // 在左半部分查找
        }
    }
    return false;  // 没找到
}

int main() {
    int arr[] = {85, 63, 52, 34, 25, 17, 6};
    int n = sizeof(arr) / sizeof(arr[0]); //数组长度
    int k = 6;     //查找6
    if (Search(arr, n, k)) { //调用函数
        cout << "元素" << k << "存在" << endl;
    } else {
        cout << "元素" << k << "不存在" << endl;
    }
    return 0;
}