编辑代码

#include <stdio.h>

bool binarySearch(int arr[], int left, int right, int target) {
    while (left <= right) {
        int mid = left + (right - left) / 2;

        // 如果目标值小于中间值,则在左半部分查找
        if (arr[mid] > target)
            right = mid - 1;
        // 如果目标值大于中间值,则在右半部分查找
        else if (arr[mid] < target)
            left = mid + 1;
        // 找到目标值
        else
            return mid;
    }

    // 目标值不存在
    return false;
}

int main() {
    int arr[] = {85, 63, 52, 34, 25, 17, 6};
    int n = sizeof(arr) / sizeof(arr[0]);
    int target =6;
    int result = binarySearch(arr, 0, n - 1, target);

    if (!result)
        printf("目标值不存在\n");
    else
        printf("目标值位于索引 %d\n", result);

    return 0;
}