算法的时间复杂度—大O表示法

大O表示法(Order)

O(f(n))表示的是算法的时间复杂度,表示规模为n的问题需要的时间与f(n)成正比,即f(n)阶。其中函数 f(n) 称为增率函数(growth-rate function)。
比如:

  • 若规模为n的问题需要的时间与n成正比,则问题表示为O(n),即n阶
  • 若需要的时间与\(n^2\)成正比,则问题表示为O(\(n^2\)),以此类推。

注意:

  • 大O表示法指出的是最糟糕的情况下的运行时间,表示算法的上限。比如O(n)在查找的时候可能第1次就找到了
  • 算法的速度,是随着输入的增加,其运行时间将以什么样的速度增加。

常用的5种大O运行时间

  • O(log n) :也叫对数时间,比如二分查找
  • O(n) :也叫线性时间,比如简单查找
  • O(nlog n) :比如快速查找
  • O(\(n^2\)) :比如选择排序
  • O(n!) :也比如旅行商问题

5种大O运行时间图示

posted @ 2020-05-21 00:03  亚北薯条  阅读(898)  评论(0编辑  收藏  举报