#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;
}