解決策は間違っています。デマス[1; 2、経由 5.3.1]は、7つの比較のみを使用して5つの値をソートできること、つまり、この場合「情報理論」の下限が厳しいことを示しています。
答えは、一般的なアルゴリズムではなく、合わせた方法です。また、あまり良くありません。これは概要です:n=5
最初の2つのペアを並べ替えます。
ペアをそれぞれの大きな要素で並べます。
結果を呼び出します ; a < b < dおよびc < dを知っています。[a,b,c,d,e]a<b<dc<d
を[ a 、b 、d ]に挿入します。e[a,b,d]
手順3の結果にを挿入します。c
最初のステップは明らかに2つの比較を行い、2番目の比較は1つだけです。最後の2つのステップでは、それぞれ2つの比較を行います。両方の場合に3要素リストに挿入し(ステップ4については、からcが手元のリストの最後の要素よりも小さいことがわかっていることに注意してください)、最初に中間要素と比較します。これにより、合計7つの比較が行われます。c<dc
この「素敵な」擬似コードの書き方がわからないので、テスト済みの(そして願わくは読みやすい)実装についてはこちらを参照してください。
博士号 論文(スタンフォード大学)by HB Demuth(1956)
HB Demuthによる電子データのソート(1985)も参照してください。
-
Donald E. Knuthによるソートと検索。コンピュータプログラミング Vol。3(第2版、1998年)