二分查找算法是一种在有序数组中查找某个元素的算法,其通过不断折半的方式来缩小搜索范围。
以下是一个C++代码实现二分查找的示例:
#include <iostream>
#include <vector>
int binary_search(const std::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; // target not found
}
int main() {
std::vector<int> nums = {1, 2, 3, 4, 5};
int target = 3;
int index = binary_search(nums, target);
if (index == -1) {
std::cout << "Target not found." << std::endl;
} else {
std::cout << "Target found at index " << index << "." << std::endl;
}
return 0;
}
上述代码中,binary_search
函数实现了二分查找算法。它接受一个有序数组和目标元素作为参数,并返回目标元素在数组中的索引。如果找不到目标元素,则返回-1。