用一个超形象的比喻来理解「时间复杂度」—— 就是做任务的「时间成本」。
⏳ 设定:你是一个工厂老板
你的工厂要装箱一批货物,但你有多种机器可以选。每种机器的运作原理不同,你需要估算哪种机器最省时间。
📦 任务:把 100 箱货物装进仓库
1. 机器A:傻瓜流水线
- 操作:每次只能搬 1 箱,搬完 100 箱需要 100 步。
- 时间复杂度:
O(n)
(时间随货物量n线性增长)
2. 机器B:智能分拣机
- 操作:能把货物分成两堆,不断递归分拣(比如二分法)。搬 100 箱只需要约 7 步(因为
log₂100≈7)。 - 时间复杂度:
O(log n)
(时间增长极慢,像“作弊”一样快!)
3. 机器C:暴力分拣机
- 操作:每搬 1 箱,都要和其他所有箱子对比一次(比如暴力排序)。搬 100 箱需要 100×100=10,000 步!
- 时间复杂度:
O(n²)
(时间爆炸式增长,货物多了直接累死)
📊 结论
- O(1) < O(log n) < O(n) < O(n²)
(左边是时间成本更优的算法) - n 很大时:
O(n²)的算法可能卡到天荒地老,而O(log n)依然飞快。
下次听到「时间复杂度」,就想象自己是老板选机器——你要挑最省时的那台! ⚡