算法基础 - 二分查找
文章目录
二分查找算法通常应用于已排序的数组。以下是一个C++实现的二分查找算法示例:
#include <iostream>
#include <vector>
int binarySearch(const std::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()
{
std::vector<int> nums = {2, 5, 8, 12, 16, 23, 38, 56, 72, 91};
int target = 23;
int index = binarySearch(nums, target);
if (index != -1)
{
std::cout << "Element found at index " << index << std::endl;
}
else
{
std::cout << "Element not found" << std::endl;
}
return 0;
}
这段代码定义了一个binarySearch函数,它接受一个整数向量和一个目标值,返回目标值在数组中的索引,如果不存在则返回-1。在main函数中,我们创建了一个已排序的整数数组和一个要查找的目标值,然后调用binarySearch函数并输出结果。