基于比较的排序的时间复杂度下限是多少

如题所述

原因:
对于n个待排序元素,在未比较时,可能的正确结果有n!种。
在经过一次比较后,其中两个元素的顺序被确定,所以可能的正确结果剩余n!/2种。
依次类推,直到经过m次比较,剩余可能性n!/(2^m)种。
直到n!/(2^m)<=1时,结果只剩余一种。此时的比较次数m为o(nlogn)次。
所以基于排序的比较算法,最优情况下,复杂度是o(nlogn)的。
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-07-21
基于比较的排序算法是不能突破O(NlogN)的。简单证明如下:
N个数有N!个可能的排列情况,也就是说基于比较的排序算法的判定树有N!个叶子结点,比较次数至少为log(N!)=O(NlogN)(斯特林公式)。本回答被提问者采纳
相似回答