用C++演绎二分查找算法
时间: 2023-07-19 16:36:35 浏览: 81
好的,以下是用 C++ 实现的二分查找算法示例代码:
```cpp
#include <iostream>
#include <vector>
using namespace std;
int binarySearch(vector<int>& nums, int target) {
int left = 0, right = nums.size() - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (nums[mid] == target)
return mid;
else if (nums[mid] < target)
left = mid + 1;
else
right = mid - 1;
}
return -1;
}
int main() {
vector<int> nums = {1, 3, 5, 7, 9, 11};
int target = 7;
int index = binarySearch(nums, target);
if (index == -1)
cout << "Target " << target << " not found" << endl;
else
cout << "Target " << target << " found at index " << index << endl;
return 0;
}
```
以上代码中,我们定义了一个 `binarySearch` 函数,接收一个已排序的整数数组 `nums` 和一个目标值 `target`,并返回目标值在数组中的索引。函数内部使用了二分查找算法,通过不断缩小查找区间来定位目标值。
在 `main` 函数中,我们先定义了一个有序整数数组 `nums` 和一个目标值 `target`,然后调用 `binarySearch` 函数来查找目标值在数组中的位置。如果找到了,则输出目标值的索引;否则输出未找到的提示。
阅读全文