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

admin2014-01-13  36

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

选项

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

解析
转载请注明原文地址:https://jikaoti.com/ti/B7U3FFFM
0

最新回复(0)