帮我写一个C++二分查找法代码
时间: 2024-12-23 21:18:51 浏览: 6
当然可以,二分查找算法,也叫折半查找,是一种在有序数组中查找特定元素的搜索算法。下面是使用C++实现的一个简单的二分查找法:
```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, 11, 13};
int n = sizeof(arr) / sizeof(arr[0]);
int target = 9; // 要查找的目标值
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` 函数接受一个已排序的整数数组、起始索引(left)、结束索引(right)和要查找的目标值(target)。如果找到目标值,返回对应的索引;否则返回-1。
阅读全文