アルゴリズムと計算量の問題
互いに異なる 個の実数 を昇順に並べかえる。使える操作は「 つの要素を比べて、どちらが小さいかを知る」比較だけとし、 回の比較の結果は 通りであるとする。このような比較にもとづくソートの手順を決定木で表すと、葉はそれぞれ つの並べ方(順列)に対応し、すべての並べ方が葉として現れる必要がある。この考え方から得られる「最悪の場合の比較回数の下界」 の値を求めよ。
この問題で使うもの
- ソート・探索の最悪比較回数(説明と入口の問題)
この問題を解けるようになるまで(17 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
決定木による比較ソートの下界 を使う。まず のときの並べ方の総数を順列で数えよう。
ヒント 2
比較回数が最悪 回の決定木の葉は高々 個なので、 となる最小の整数 を求めればよい。
ヒント 3
である。 と の値を計算して と比べてみよう。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
手順 1:区別すべき場合の数を数える。 個の互いに異なる数の大小の並び方は、 個を一列に並べる順列の数だけある。
ソートの手順は、この 通りのどれであるかを比較だけで見分けなければならない。
手順 2:決定木の葉の数と高さの関係を使う。 回の比較で枝は 本に分かれるので、比較回数が最悪でも 回の決定木は葉を高々 個しか持てない。葉は 通りの並べ方をすべて含む必要があるから
は整数なので である。
手順 3: を求める。 のべきを並べると
よって であり、
したがって、どんな比較ソートでも最悪の場合に少なくとも 回の比較が必要である。
別解
通りの並べ方がすべて葉として現れる必要がある。高さ の二分決定木の葉は高々 個なので、 でなければならない。、 より、 は より大きく 以下である。実際、 なので であり、 となる。検算として かつ を確認した。したがって下界は 回である。