【算法导论】决策树下界的形象理解?
ll雯 2016-07-15 08:33:47 我在看算法导论的比较排序,作者用决策树证明了比较排序的下界是nlgn
但是证明过程是用比较法,
能否用更加形象的方式解释这个nlgn是怎么来的呢?
(比如我尝试这样解释:对于n个数的排序,每个数至少需要比较lgn次,那么这个lgn又是怎么来的呢?)
决策树排序的下界
如果决策树是针对n个元素排序,那么它的高度至少是nlgn。
在最坏情况下,任何比较排序算法都需要做Ω(nlgn)次比较。
因为输入数据的Ann种可能的排列都是叶结点,所以Ann≤l,由于在一棵高位h的二叉树中,叶结点的数目不多于2h,所以有:
n!≤l≤2h
对两边取对数:
=> lg2h≥lgn!
=> lg2h=hlg2≥lgn!
又因为:
lg2<1
所以:
n≥lgn!=Ω(nlgn) (此处涉及对n阶乘的变换,需要使用斯特林公式)
因为堆排序和归并排序的运行时间上界均为O(nlgn),因此它们都是渐近最优的比较排序算法。