编辑代码

#include <iostream>
using namespace std;
#include <stdio.h>

// 二分查找函数
int binarySearch(int arr[], int size, int k) {
    int low = 0;
    int high = size - 1;
    int mid;

    while (low <= high) {
        mid = low + (high - low) / 2; // 防止溢出
        if (arr[mid] == k) {
            return mid; // 找到元素,返回索引
        } else if (arr[mid] > k) {
            high = mid - 1; // 在左半部分查找
        } else {
            low = mid + 1; // 在右半部分查找
        }
    }
    return -1; // 未找到元素,返回-1
}

// 主函数
int main() {
    int arr[] = {85, 63, 52, 34, 25, 17, 6}; // 有序数组
    int size = sizeof(arr) / sizeof(arr[0]);
    int k = 6; // 要查找的元素
    int index = binarySearch(arr, size, k);

    if (index != -1) {
        printf("元素 %d 存在于数组中,索引为 %d。\n", k, index);
    } else {
        printf("元素 %d 不存在于数组中。\n", k);
    }
    return 0;
}