算法可视化
查找复杂度 O(log n)
二分查找
在有序数组中,每次和中间元素比,直接排除一半。7 个元素最多 3 次就能找到。
复杂度 O(log n)
main.cpp第 3 行
1#include <iostream>
2using namespace std;
3int main() {
4 int a[] = {1, 3, 5, 7, 9, 11, 13};
5 int target = 9;
6 int lo = 0, hi = 6;
7 while (lo <= hi) {
8 int mid = (lo + hi) / 2;
9 if (a[mid] == target) { cout << "找到"; break; }
10 else if (a[mid] < target) lo = mid + 1;
11 else hi = mid - 1;
12 }
13 return 0;
14}
变量表0 个变量
还没有变量,执行到声明语句后出现
数组 a
比较交换已就位
10
31
52
73
94
115
136
1/13
进入 main 函数
1 / 13