1, 一般而言,我们用大O表示法来说明算法的运行时间,大O表示法一般如下图所示:
O (n)
大O n:操作数
之所以称作大O表示法,是因为操作数前面有一个大O.这听起来像个笑话,但事实如此.
在大O表示法0(n)中, n实际是指 C * N , C 是算法所需的固定时间量, 被称为常量.
在算法运行时间比较中, 数据量比较大, 一般不考虑其常量部分.算法的运行时间的提升一般都是数量级的.
当然在快速排序和合并排序运行时间比较中, 大O表示法的常量事关重大. 这也是快速排序比合并排序快的原因.
2,大O表示法最糟情况下的运行时间.
例如,假设你使用简单查找在电话簿中找人, 如果查找的是Aa----电话簿中的第一人,一次就能找到,无需查看每个条目. 查找Aa一次就找到了, 这是最佳情形,但大O表示法说的是最糟的情形.
3,几种常见大O运行时间
O(log n) : 对数时间, 如 二分查找
O(n): 线时间, 如 简单查找
O性(n * log n) : 快速排序, 一种较快的排序方法.
O(n*n) : 选择排序, 一种较慢的排序方法.
O(n!) : 旅行商问题. 一种非常慢的算法. 目前社会有待解决的问题.
4,算法运行时间小结:
- 算法运行的时间是用大O表示法来表示的.
- 算法运行时间并不以秒为单位.
- 算法运行时间从其增速的角度来度量的.