大O表示法
大O表示法???这是什么东西?? 大O表示法 其实并没有多么高大上, 而是一种特殊的表示法,指出了算法的速度有多快 。这种表示法简单易懂,非常明了,所以应用广泛。 举个例子,就如我上一篇博客中提到的 二分查找(https://blog.csdn.net/qq_45835827/article/details/104651718) 。如果用大O表示法来分别表示简单查找和二分查找的速度为: 简单查找 :O(n) 二分查找 :O(log 2 n) 这就是 大O表示法 ,前面的O有点大。 因为在很多时候,如果只是告诉你算法花了多长时间是没有用的,而是需要知道运行时间如何随list的增长而增长。大O表示法的用武之地就在于此。也就是之前所说的,大O表示法指出了算法的速度有多快。 下面给大家介绍一些常见的大O运行时间 O(log 2 n),对数时间,例如:二分查找。 O(log n),线性时间,例如:简单查找。 O(n * log 2 n),例如:快速排序(可以参考我的另外一篇博客)。 O(log n 2 )例如:选择排序(可以参考我的另外一篇博客)。 O(log n!)例如:用于旅行商问题。 大家可能也注意到了一点, 大O表示法指出了最糟情况下的运行时间 。怎么去理解这个性质呢?其实就是说该算法最糟运行的时间大O表示法所指代的时间,这是一个保证。比如说,小明心里想的数字为50