编辑代码

#include <iostream>
using namespace std;

int half(int arr[], int n, int index) {
int low = 0;
int high = n - 1; //设置查找区间,注意数组下标从0开始
int mid;
while (low <= high) { //当区间存在时
mid = (low + high) / 2;
if (index > arr[mid]) {
high = mid - 1;
} else if (index < arr[mid]) {
low = mid + 1;
} else {
return mid; //查找成功,返回元素序号
}
}
return -1; //查找失败,返回-1
}

int main() {
int arr[] = {85, 63, 52, 34, 25, 17, 6};
int n = sizeof(arr) / sizeof(arr[0]);
cout << "6在数组中的下标是:" << half(arr, n, 6) << endl;
return 0;
}