写一段折半查找法完整代码
时间: 2023-11-20 15:10:26 浏览: 93
好的,以下是折半查找法的完整代码:
```c++
#include <iostream>
using namespace std;
int binarySearch(int arr[], int left, int right, int target) {
// 如果左侧索引大于右侧索引,说明查找失败
if (left > right) {
return -1;
}
// 计算中间索引
int mid = left + (right - left) / 2;
// 如果中间元素等于目标值,直接返回中间索引
if (arr[mid] == target) {
return mid;
}
// 如果中间元素大于目标值,继续在左侧查找
else if (arr[mid] > target) {
return binarySearch(arr, left, mid - 1, target);
}
// 如果中间元素小于目标值,继续在右侧查找
else {
return binarySearch(arr, mid + 1, right, target);
}
}
int main() {
int arr[] = {1, 3, 5, 7, 9};
int n = sizeof(arr) / sizeof(arr[0]);
int target = 5;
int result = binarySearch(arr, 0, n - 1, target);
if (result == -1) {
cout << "查找失败" << endl;
}
else {
cout << "查找成功,目标元素的索引为:" << result << endl;
}
return 0;
}
```
这段代码实现了折半查找法,通过递归的方式在有序数组中查找目标元素的索引。在主函数中,我们定义了一个有序数组并指定目标元素为5进行查找,最后输出查找结果。
阅读全文