七、基于比较的排序算法总结
生活随笔
收集整理的這篇文章主要介紹了
七、基于比较的排序算法总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 問題
至此,總結一下已經研究過的排序算法:
insertion sort,Θ(n2)\Theta(n^2)Θ(n2)
merge sort, Θ(nlogn)\Theta(nlogn)Θ(nlogn)
quicksort, Θ(nlogn)\Theta(nlogn)Θ(nlogn)
heapsort,Θ(nlogn)\Theta(nlogn)Θ(nlogn)
- 從上面這個現象發現,這些算法的算法復雜度≥Θ(nlogn)\ge\Theta(nlogn)≥Θ(nlogn);
- 從算法的細節上看,算法的最基本的思想是比較元素大小;
從上面的發現中,可以提出這樣一個猜想:
所有基于比較的排序算法,算法復雜度≥Θ(nlogn)\ge\Theta(nlogn)≥Θ(nlogn)。
2 證明結論
數學證明的思路分兩步,1??找到一種更加抽象的數學結構表達各種基于比較排序算法;2??研究這種抽象的數學結構的性質;3??利用得到的性質說明結論。
2.1 Decision-tree(抽象數學結構)
這個決策樹和Machine Learning里的決策樹本質上是一個意思。
- 先看一個簡單的例子
- 三個元素的Decision-tree很容易畫出,但是≥4\ge4≥4就不容易畫出了,因為有Cn2C_n^2Cn2?種比較,而每一次比較又有兩種結果,這些比較的結果中一部分就可以決定全序…,已經超出人腦處理范疇,計算機也不太容易處理;
- 仔細品品基于比較的排序算法,也是一頓比較之后確定一個全序,而這頓比較恰恰是Decision-tree所有比較之一,也就是Decision-tree的一條路徑;
- 不過我們不必過于糾結Decision-tree的細節結構,只需要知道它的存在性就足夠解決我們今天的問題了,這就是數學抽象之美;
2.2 Decision-tree的數學性質
2.3 結論得證
決定基于比較的排序算法的復雜度是比較的次數,用decision tree就是某一個路徑的高度hhh,現在已經證明整個二叉樹的高度h≥Ω(nlogn)h\ge\Omega(nlogn)h≥Ω(nlogn),那就說明基于比較的排序算法的復雜度≥Ω(nlogn)\ge\Omega(nlogn)≥Ω(nlogn)。
3 強調重點
- 決定基于比較的排序算法的復雜度是比較的次數;
- 在input確定的情況下,某種基于比較的排序算法的比較序列和decision tree的結構可以確定,該算法的比較序列只是decision tree的某一條路徑;
- 基于比較的排序算法隨機化后仍符合上面的邏輯框架,結論仍然成立;
總結
以上是生活随笔為你收集整理的七、基于比较的排序算法总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring mvc 入门Dispatc
- 下一篇: 项目日报模板_韶州中学项目建设正酣 ,计