写出可以使用其完整功能的折半查找代码
时间: 2024-03-10 14:43:54 浏览: 47
好的,以下是一份完整的折半查找代码,包括了输入、排序和输出:
```c++
#include <iostream>
#include <algorithm>
using namespace std;
int binarySearch(int a[], int n, int x) {
int left = 0, right = n - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (a[mid] == x) {
return mid;
} else if (a[mid] > x) {
right = mid - 1;
} else {
left = mid + 1;
}
}
return -1; // 查找失败
}
int main() {
int n, x;
cout << "请输入数组长度n和要查找的数x:" << endl;
cin >> n >> x;
int a[n];
cout << "请输入" << n << "个数:" << endl;
for (int i = 0; i < n; i++) {
cin >> a[i];
}
sort(a, a + n); // 排序
int index = binarySearch(a, n, x);
if (index == -1) {
cout << "查找失败" << endl;
} else {
cout << "要查找的数x在数组中的下标为:" << index << endl;
}
return 0;
}
```
运行示例:
```
请输入数组长度n和要查找的数x:
5 3
请输入5个数:
5 3 8 1 9
要查找的数x在数组中的下标为:1
```
希望能帮到你,如有疑问请随时问我!
阅读全文