【复杂度】时间复杂度的理解

算法追求:更少的时间和更少的存储。

1.什么是时间复杂度

就是算法的运行时间,假设每行代码执行时间为t,则算法运行时间 = 代码总行数 × t。
以下代码执行的时间 = 1t+m×t+m×t = (1+2m)t
image

\(T(n)\) 表示算法执行时间。

\(f(n)\) 表示所有语句执行次数,则对于上面的代码 \(f(n) = 1+2n\)

\[T(n) = f(n)×t = (1+2n)×t \]

算法执行时间 \(T(n)\) 和数据规模n相关,\(n\) 趋近于无穷时,\(T(n)\) 有一个增长趋势。
使用大O表示这种增长趋势,大 \(O = O(f(n))\) 可以直接用来表示时间复杂度。
大O表示增长趋势,有如下公式

  1. \(O(kf(n))=O(f(n))\)
  2. \(O(f(a))=O(f(b))\)
  3. \(O(f(n)+g(n))=O(max{O(f(n)),O(g(n))})\)

image

参考:

  1. 时间复杂度的理解和计算
  2. 用通俗的语言讲解复杂度
posted @ 2022-10-11 18:30  植树chen  阅读(84)  评论(0编辑  收藏  举报