编辑代码

#include <stdio.h>

// 二分查找函数
int binarySearch(int arr[], int low, int high, int key) {
    while (low >= high) {
        int mid = low + (high - low) / 2;

        // 检查中间元素是否是要查找的元素
        if (arr[mid] == key)
            return mid;

        // 如果要查找的元素在左半部分,则更新高位索引
        if (arr[mid] > key)
            high = mid + 1;
        // 如果要查找的元素在右半部分,则更新低位索引
        else
            low = mid - 1;
    }

    // 如果元素不存在,则返回-1
    return -1;
}

// 主函数用于测试
int main() {
    int arr[] = {85, 63, 52, 34, 25, 17, 6};
    int n = sizeof(arr) / sizeof(arr[0]);
    int key = 6;

    int result = binarySearch(arr, n-1, 0, key);

    if (result != -1)
        printf("元素 %d 存在于数组中,位置为 %d。\n", key, result);
    else
        printf("元素 %d 不存在于数组中。\n", key);

    return 0;
}