最好,最坏,平均情况时间复杂度
最近复习到数据结构,总结一下之前一直没懂的最坏,最好,平均情况的时间复杂度
最好:
每次要查找的数据刚好在数据的第一个,即每个数只要查一次就可以了,带入O表示为O(1)
最坏:
每次要查找的数据刚好在数据的最后一个,即第一个数要查n次,第二个要查n-1次,第三个要查n-2次。。。以此类推,最后一个要查一次即可,累加一下就是(1+n)n/2。即每个数平均下来要查找(1+n)/2次,带入O表示为O(n)。
平均(即加权平均):
这个之前一直没看懂,现在简单总结一下。假如数组有n个位置,每个位置刚好是你要查的数据的概率为1/(1+n),(n个数据有n种,再加一是所查的数不在数据中的情况)。
接下来就看查一个数,每个位置要查几次,显然,第一个位置要查1次到达,第二个位置查2次到达,第三个位置查3次到达。。。。。第n个位置查n次到达,总共就是1+2+3+。。。+n
即每个数平均下来要查找1/(1+n) * (1+2+3+....n) 即书本上的n(n+3)/2(n+1)。带入O,去掉低阶项为O(n)。