在学习链表、排序和搜索之前,需要先有一把比较算法的尺子。复杂度不是给代码贴一个神秘公式,而是描述:输入规模变大时,工作量怎样增长。
为什么不能只看运行秒数
同一段程序的耗时会受到 CPU、编译器、优化级别、系统负载和测试数据影响。秒数适合做最终测量,却不适合作为第一层通用分析。
复杂度忽略机器常数,关注增长趋势。例如处理 n 个元素:
- 做固定几步:
O(1); - 每个元素看一次:
O(n); - 每对元素都比较:
O(n²); - 每次把范围减半:
O(log n)。
2026/7/8大约 4 分钟