c++利用二分查找(折半查找)代码
时间: 2024-10-17 09:15:03 浏览: 21
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, 11}; // 排序数组示例
int n = sizeof(arr) / sizeof(arr[0]);
int target = 7; // 要查找的目标值
int result = binarySearch(arr, 0, n - 1, target);
if (result != -1)
cout << "Element found at index " << result << endl;
else
cout << "Element not found" << endl;
return 0;
}
```
在这个例子中,`binarySearch` 函数接收一个已排序的整数数组、起始索引 `left` 和结束索引 `right`,以及要查找的目标值。它会反复将搜索范围减半,直到找到目标值或者搜索范围为空。
阅读全文