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