家长常听孩子说 "O(n)"、"时间复杂度",不知道什么意思。本文用生活例子讲清楚。

通俗理解

时间复杂度 = 算法运行时间随数据规模的增长率。

生活例子

例子1:找一本书(线性)

100 本书一本本找,找第 100 本要看 100 次。这是 O(n)。

例子2:查字典(二分)

字典每次翻一半,1000 页最多 10 次。这是 O(log n)。

例子3:写名字(常数)

无论多少学生,每个学生写名字 1 次。这是 O(1)。

例子4:双重循环

n 个数两两比较,n×(n-1)/2 次。这是 O(n²)。

复杂度对比(n=10000 时)

  • O(1):1 次
  • O(log n):14 次
  • O(n):10000 次
  • O(n log n):140000 次
  • O(n²):1 亿次

咨询孩子算法学习:151 6522 2880