📅  最后修改于: 2023-12-03 15:25:11.203000             🧑  作者: Mango
二进制搜索是一种高效的查找算法,它可以在排序后的向量中快速查找目标值。它的时间复杂度为 O(log n),比顺序查找 O(n) 要快得多。
二进制搜索的基本思想是:将排序后的向量分为两半,如果目标值比中间值小,则在左半部分查找;如果目标值比中间值大,则在右半部分查找。每次查找都可以将搜索范围缩小一半,因此算法非常高效。
二进制搜索的实现过程可以分为以下几步:
代码实现:
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) {
right = mid - 1;
} else {
left = mid + 1;
}
}
return -1;
}
二进制搜索是一种高效的查找算法,它可以在排序后的向量中快速查找目标值。在程序实现中,可以利用二分法不断缩小查找范围,直到找到目标值或者确定目标不在向量中。