5個數排列所需的最少比較次數
阿新 • • 發佈:2019-01-01
5 個數最快的排序, H.B.Demuth 於 1956 年在他的博士論文中提出了以下方法:
開始時,就像用合併對4個元素排序一樣,首先比較a:b,接著 c:d,然後把每對的較大者拿來比較,這就產生了a<b<d和 c<d, 進行 3 次比較, 可以找到如下有序關係 (以下圖中所有連線均表示左下元素比右上元素小)
b--d
/ /
a c e
這時,我們把第5個元素e,插入到{a,b,d}當中的適當位置,只需比較兩次,首先同b進行比較,而後同a或d進行比較,就有如圖所示的四種情況
b-d e-b-d b-e-d b-d-e
/ / / / / / / /
e-a c a c a c a c
對以上任意一種情況, 總可以通過兩次比較將 c 調整入由 abde 構成的有序隊中 (用二分的思想)
這樣處理後總共需要比較 3 + 2 + 2 = 7 次, 能選出答案 7 並且解答過程無誤的可以給雙倍的分
資料來源: [Ph.D.thesis, Standford University(1956), 41~43]
同時在 D.E.Knuth 的著作 <計算機程式設計藝術> (The Art of Computer Progamming) 第三卷(排序和查詢) 173 頁至 174 頁對這個問題有一個詳細的解釋.