时间复杂度-学习记录

时间复杂度-学习记录

用一个超形象的比喻来理解「时间复杂度」—— 就是做任务的「时间成本」


设定:你是一个工厂老板

你的工厂要装箱一批货物,但你有多种机器可以选。每种机器的运作原理不同,你需要估算哪种机器最省时间。


📦 任务:把 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) 依然飞快。

下次听到「时间复杂度」,就想象自己是老板选机器——你要挑最省时的那台!

Licensed under CC BY-NC-SA 4.0
最后更新于 Jul 24, 2025 00:00 UTC
this is the end :)