安阳信息港网站,深圳wordpress培训,手机开发人员选项怎么设置,17173金币交易平台一、理论基础
二分搜索#xff0c;也称折半搜索、对数搜索#xff0c;是一种在有序数组中查找某一特定元素的搜索算法。
二分搜索是一种高效的查找算法#xff0c;适用于在已排序的数组中查找特定元素。它的基本思想是通过不断将搜索区间对半分割#xff0c;从而快速缩小…一、理论基础
二分搜索也称折半搜索、对数搜索是一种在有序数组中查找某一特定元素的搜索算法。
二分搜索是一种高效的查找算法适用于在已排序的数组中查找特定元素。它的基本思想是通过不断将搜索区间对半分割从而快速缩小查找范围。
二分搜索每次把搜索区域减少一半时间复杂度为 O(logn)n代表集合中元素的个数。
二分搜索的基本步骤如下
1.初始条件将搜索范围设为数组的整个区间。 2.查找中间元素计算当前区间的中间索引。 3.比较中间元素将中间元素与目标值进行比较
如果中间元素等于目标值查找成功返回中间索引。如果中间元素小于目标值将搜索范围缩小到右半部分。如果中间元素大于目标值将搜索范围缩小到左半部分。
4.重复步骤 2 和 3直到找到目标值或搜索范围为空。 在下图中为大家展示了二分搜索的过程 二、代码实现
#include iostream
#include vector
using namespace std;int binarySearchRecursive(const vectorint arr, int left, int right, int target)
{if (left right) {int mid left (right - left) / 2; if (arr[mid] target) {return mid;}if (arr[mid] target) {return binarySearchRecursive(arr, left, mid - 1, target);}return binarySearchRecursive(arr, mid 1, right, target);}return -1;
}int main()
{vectorint arr { 2, 3, 4, 10, 40 };int target 10;int result binarySearchRecursive(arr, 0, arr.size() - 1, target);if (result ! -1) {cout 元素在索引 result 处找到 endl;}else {cout 元素未找到 endl;}return 0;
}