c++二分查找法的代码
时间: 2024-11-15 08:28:35 浏览: 37
在C++中,二分查找(Binary Search)通常用于有序数组中快速查找特定元素。它的基本思想是将数组分为两半,每次比较中间元素与目标值,如果目标值小于中间元素,则在左半部分继续搜索;如果目标值大于中间元素,则在右半部分搜索,直到找到目标或确定目标不存在。以下是二分查找的一个简单示例:
```cpp
#include <iostream>
// 定义二分查找函数
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[] = {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)
std::cout << "Element found at index: " << result << std::endl;
else
std::cout << "Element not found in the array" << std::endl;
return 0;
}
```
在这个例子中,`binarySearch`函数接收一个排序后的整数数组、起始和结束索引,以及目标值。在循环中不断缩小搜索范围,直到找到目标或者搜索区间为空。
阅读全文