一句话理解
时间复杂度描述运行次数随 n 增长的快慢。
为什么要学
这是竞赛里决定算法能不能过的第一判断。
讲解
看主导项,忽略常数。双重循环大约 n²,二分大约 log n。
它不是精确秒数,而是增长趋势。n 变 10 倍,O(n) 变 10 倍,O(n²) 变 100 倍。
例子
for i in 1..n: for j in 1..n: 内部 O(1) → O(n²)。
经验:1 秒大约 1e8 次简单运算。
常见错误
- 把复杂度当成绝对运行时间,忽略常数和机器。
- 只看循环层数,忘了内层调用了 O(n) 的函数。