二分查找算法 - C++ 实现及应用
二分查找算法
二分查找算法是一种高效的查找算法,适用于在有序数组中查找目标值。其基本思想是将目标值与数组中间元素进行比较,如果目标值等于中间元素,则查找成功;如果目标值小于中间元素,则在左半部分继续查找;如果目标值大于中间元素,则在右半部分继续查找。如此反复,直到找到目标值或查找范围为空。
C++ 实现
#include <iostream>
#include <vector>
using namespace std;
// 二分查找函数
int binarySearch(vector<int>& nums, int target) {
int left = 0;
int 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() {
int n, q;
cin >> n >> q;
vector<int> nums(n);
for (int i = 0; i < n; i++) {
cin >> nums[i];
}
for (int i = 0; i < q; i++) {
int x;
cin >> x;
int result = binarySearch(nums, x);
cout << result << endl;
}
return 0;
}
应用
二分查找算法在很多领域都有应用,例如:
- 查找字典中的单词
- 查找数据库中的记录
- 在代码中查找特定的函数或变量
总结
二分查找算法是一种高效的查找算法,可以显著提高查找速度。在需要在有序数组中查找目标值时,二分查找算法是一个不错的选择。
原文地址: https://www.cveoy.top/t/topic/pZGh 著作权归作者所有。请勿转载和采集!