二分查找C++完整代码
时间: 2024-09-10 12:01:31 浏览: 20
二分查找,也称为折半查找,是一种在有序数组中查找特定元素的高效搜索算法。以下是使用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)
right = mid - 1;
// 否则,在右半部分查找
else
left = mid + 1;
}
// 没有找到目标,返回 -1
return -1;
}
int main() {
int arr[] = {2, 4, 7, 9, 11, 15, 20}; // 示例数组,已排序
int n = sizeof(arr) / sizeof(arr[0]);
int target = 9; // 要查找的元素
// 调用二分查找函数并打印结果
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;
}
```
这个程序首先定义了一个`binarySearch`函数,它接受一个排序后的整数数组、起始索引、结束索引以及要查找的目标值。如果找到了目标,返回其索引;如果没有找到,返回-1。在`main`函数中,我们创建了一个测试数组,并调用了`binarySearch`来查找指定的元素。