1. 程式人生 > >決策樹與排序演算法的一般下界

決策樹與排序演算法的一般下界

定理:任何只用到比較的演算法最壞情況下需要\Omega (NlogN)次比較

決策樹:用於證明排序演算法的下界,是一個二叉樹,每個節點是元素之間一組可能的排序,比較的結果是樹的邊,下圖表示將a,b,c排序的演算法

排序演算法比較次數等於最深的樹葉的深度,平均次數是平均深度

引理1:令T是深度為d的二叉樹,那麼T最多有2^d個樹葉

證明:顯然

引理2:有L片樹葉的二叉樹的深度至少是\left \lceil logL \right \rceil

證明:顯然

定理1:只用元素之間比較的任何排序演算法在最壞情況下至少需要\left \lceil log(N!) \right \rceil次比較

證明:對N個元素排序,一定有N!個樹葉,因為樹葉是每種排序的結果,應用引理2得到結論

定理2:只用元素之間比較的任何排序演算法需要進行\Omega (NlogN)

次比較

證明:

log(N!)=log(N(N-1)(N-2)...(2)(1))))

               =logN + log(N-1) +...+log(2)+log(1)

               \geqslant logN+log(N-1)+...+log(N/2)

               \geqslant \frac{N}{2}log\frac{N}{2}

               \geqslant \frac{N}{2}log\frac{N}{2}-\frac{N}{2}

               =\Omega (NlogN)

資訊理論下界:若存在任何P種不同的情況需要區分,問題是yes/no的形式,那麼任何演算法求解該問題總需要\left \lceil logP \right \rceil個問題