利用比较的方法进行排序,在最坏情况下,能达到的最好时间复杂度是多少?请给出详细证明。

admin2013-12-19  30

问题 利用比较的方法进行排序,在最坏情况下,能达到的最好时间复杂度是多少?请给出详细证明。

选项

答案 假定特排序的记录有n个。由于含n个记录的序列可能出现的状态有n!个,则描述n个记录排序过程的判定树必须有n!个叶子结点。因为若少一个叶子,则说明尚有两种状态没有分辨出来。若二叉树高度是h,则叶子结点个数最多为2h-1个;反之,若有u个叶子结点,则二叉树的高度至少有1og2u+1。这就是说,描述n个记录排序的判定树必定存在一条长度为1og2(n!)的路径,即任何一个借助“比较”进行排序的算法,在最坏情况下所需进行的比较次数至少是log2(n!)次。根据斯特林公式,有log2(n!)=()(nlog2n),即借助于“比较”进行排序的算法在最坏情况下能达到的最好时间复杂度为O(nlog2n)。

解析
转载请注明原文地址:https://kaotiyun.com/show/aval777K
0

最新回复(0)