编辑代码

#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; // 元素找到,返回索引
        else if (arr[mid] > key)
            low = mid + 1; // 如果中间元素小于要查找的元素,更新搜索范围为右半部分
        else
            high = mid - 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, 0, n - 1, key);

    if (result != -1)
        printf("元素 %d 在数组中的索引为 %d\n", key, result);
    else
        printf("元素 %d 不在数组中\n", key);

    return 0;
}