二分查找算法的实现c++ 代码
时间: 2024-10-20 08:10:11 浏览: 32
二分查找算法(Binary Search),也称为折半查找,是一种在有序数组中查找特定元素的搜索算法。以下是C++的基本实现:
```cpp
#include <iostream>
using namespace std;
// 定义二分查找函数
int binarySearch(int arr[], int left, int right, int target) {
if (right >= left) {
// 找到中间位置
int mid = left + (right - left) / 2;
// 检查中间元素是否为目标
if (arr[mid] == target)
return mid;
// 如果目标小于中间元素,向左半部分递归查找
else if (arr[mid] > target)
return binarySearch(arr, left, mid - 1, target);
// 否则向右半部分递归查找
else
return binarySearch(arr, mid + 1, right, target);
}
// 目标不存在于数组中,返回 -1
return -1;
}
int main() {
int arr[] = {1, 3, 5, 7, 9}; // 示例数组
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 in the array." << endl;
return 0;
}
```
在这个代码中,`binarySearch`函数接受一个已排序的整数数组、起始索引 `left`、结束索引 `right` 和要查找的目标值 `target`。如果找到目标值,则返回其索引;否则返回 `-1` 表示未找到。
阅读全文