编辑代码

#include <stdio.h>

int binarySearch(int arr[], int n, int k) {// 定义函数search,参数为数组arr、数组长度n和要查找的元素k
    int low = 0;// 定义变量low,表示数组的最小下标
    int high = n - 1;// 定义变量high,表示数组的最大下标

    while (low <= high) {// 当最小下标小于等于最大下标时,循环执行以下过程
        int mid = low + (high - low) / 2;// 计算中间元素的下标

        if (arr[mid] == k) { 
            return mid;
        }

        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 n = sizeof(arr) / sizeof(arr[0]);
    int k = 6;

    int index = binarySearch(arr, n, k);

    if (index == -1) {
        printf("元素不存在\n");
    } else {
        printf("查找元素的下标为 %d\n", index);
    }

    return 0;
}