比較排序算法時間復雜度下界為nlogn的證明


比較排序算法的時間復雜度是O(nlogn)的證明:

排序算法的比較是兩兩進行的,所以可以抽象成一棵二叉樹,相互比較的數分別是左右葉子結點,,比較的結果存儲在父節點中,依此類推。那么算法的時間復雜度就是取決於樹的深度。如果要對n個數字進行比較排序,則需要進行n!次,即該二叉樹有n!片葉子。

一棵深度為d的二叉樹擁有的葉子結點數最大為2d個,則具有n!片葉子的二叉樹的深度為logn!。

logn!=logn+log(n-1)+log(n-1)+…+log(2)+log(1)≥logn+log(n-1)+log(n-2)+…+log(n/)

≥(n/2)log(n/2)≥(n/2)log(n/10)

≥(n/2)logn-(n/2)log10=(n/2)logn=O(nlogn)

所以比較排序的算法時間復雜度為O(nlogn)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM