大O表示法通常表示算法的速度,来表示算法的运行时间。
引用上一篇文章的例子:https://blog.youkuaiyun.com/BaymaxCS/article/details/88927029
传统方法查找100个元素,最多需要100次查找;使用二分法只需要log10^100=10次查找。假设每次查找耗时都是1ms。那么传统方法耗时100ms,二分法耗时10ms。
用大O表示法表示两种方法运行时间:
传统方法 | 二分法 | |
大O表示法 | O(n) | O(log2^n) |
常见的几种大O运行时间:
O(log2^n) 对数时间,如二分查找
O(n) 线性时间,普通查找
O(n*log2^n) 快速排序
O (n^2) 选择排序
O(n!)阶乘时间, 一种相当慢的算法(旅行商问题)
旅行商问题:一位旅行商前往A,B,C,D,E五个城市,各个城市之间的距离各不相同,如果一次走完所用城市并且距离最短。
共有O(5!)5*4*3*2*1=120种情况。每增加一个城市,执行操作数阶乘式增长,效率相当慢。