为什么基于比较的排序算法,时间复杂度总是大于等于nlgn
2016-08-12 02:07
1136 查看
图片中举了3个数进行比较排序的例子,可以看到时间复杂度也就近似看作是比较次数就是树的高度。
开始时,比较的结果就确定为n!个,每当比较一次,就砍掉一半可能性,即第一次比较,变成n!/2种可能,以此类推,最后剩一种可能,那么,比较次数m也就是树高为我们所求。于是:
由此得出公式:n!/(2^h)<=1————>2^h>=n!>n*(n-1)*(n-2)*...*1>(n/2)^(n/2)——————>h>=(n/2)log2^(n/2)。即O(nlgn)
开始时,比较的结果就确定为n!个,每当比较一次,就砍掉一半可能性,即第一次比较,变成n!/2种可能,以此类推,最后剩一种可能,那么,比较次数m也就是树高为我们所求。于是:
由此得出公式:n!/(2^h)<=1————>2^h>=n!>n*(n-1)*(n-2)*...*1>(n/2)^(n/2)——————>h>=(n/2)log2^(n/2)。即O(nlgn)
相关文章推荐
- 排序算法时间复杂度、稳定性比较
- 各种排序算法比较:时间复杂度,空间复杂度
- 排序算法的时间复杂度比较(quick_sort;bubble_sort)
- 基数排序--基于计数排序的线性时间复杂度的排序算法
- 转载~基于比较的排序算法的最优下界为什么是O(nlogn)
- 各种排序算法比较(2):时间复杂度,空间复杂度
- 各种排序算法的总结和比较以及时间复杂度
- 各种排序算法的比较(最好、最差、平均时间复杂度,空间复杂度,稳定性)
- 2011-11-16 ( 从KMP算法体现的思想 和 快排平均时间复杂度为什么是O(nlgn) )
- 排序算法时间复杂度、空间复杂度、稳定性比较
- n个无序整数,已知第i个数在排好序的序列中的位置为j,满足|i-j|<=K,请设计一种排序算法,对该序列进行排序。注:算法时间复杂度为O(nlgn)的得0分,复杂度为O(nk) 的得两分,总分是20分
- 11. 常见的有哪几种排序算法,试比较其时间复杂度,以及是否稳定,及各自使用的情形
- 各种排序算法比较:时间复杂度,空间复杂度
- 各种排序算法比较及时间复杂度,空间复杂度
- 任意给定一个大于等于10的整数A,请写一程序,以最小的时间复杂度找出比A小并且最接近A的一个整数B。要求:A的每位之和与B的每位之和相等 例:如果A=123 那么B=114
- 各种排序算法时间复杂度、稳定性、初始序列是否对元素比较次数有关
- 各种排序算法时间复杂度、稳定性、初始序列是否对元素比较次数有关
- 七大主流排序算法时间效率比较(基于C语言)
- 各种排序算法比较(2):时间复杂度,空间复杂度
- 第二周项目3 体验复杂度(比较两种排序算法的运行时间)