⚡ 二分查找时间复杂度分析

算法分析 递归 难度:简单 C语言
核心技能:递归树 · 主定理 · 对数复杂度
📌 本题训练的核心认知:通过递归树观察二分查找每次将搜索区间减半,从而推导出 O(log n) 的时间复杂度。你将亲手操作递归过程,并迁移到“乘积小于K的子数组”滑动窗口计数。

🔍 递归搜索可视化

low: 0
high: 7
mid: 3
target: 7
比较次数: 0
当前状态: 准备
递归深度:0 / 最大深度 log₂(n)+1
int search(int start, int end, int target, int *arr) {
if(start <= end) {
int mid = start + (end - start) / 2;
if (arr[mid] == target) return mid;
else if (target > arr[mid]) return search(mid+1, end, target, arr);
else if (target < arr[mid]) return search(start, mid-1, target, arr);
}
return -1;

🧠 认知任务