c++中折半查找法代码
时间: 2024-10-24 18:06:17 浏览: 34
折半查找法,也称为二分查找,是一种在有序数组中查找特定元素的高效算法。它通过反复将查找区间缩小一半的方式,最终定位到目标值。以下是C++中实现折半查找的一个基本示例:
```cpp
#include <iostream>
using namespace std;
int binarySearch(int arr[], int left, int right, int target) {
while (left <= right) {
int mid = left + (right - left) / 2; // 计算中间索引
if (arr[mid] == target) { // 找到了目标值
return mid;
}
else if (arr[mid] < target) { // 目标值大于中间值,查右半部分
left = mid + 1;
}
else { // 目标值小于中间值,查左半部分
right = mid - 1;
}
}
// 如果没找到,返回-1表示不存在
return -1;
}
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 << "Element found at index: " << result << endl;
else
cout << "Element not found in the array" << endl;
return 0;
}
```
阅读全文