単元一覧 › 大学数学 アルゴリズムと計算量

アルゴリズムと計算量の問題

難易度 3期末試験の応用レベル大学数学 アルゴリズムと計算量

互いに異なる 個の実数を並べた配列を、次のマージソートで昇順に並べかえる。

  • 長さ の列はそのまま返す。
  • 長さ の列は、前半の 個と後半の残り 個に分け、それぞれを再帰的に昇順に並べかえてから、次の手続きで併合する。
  • 併合の手続き: 昇順に並んだ つの列 が与えられたとき、どちらも空でない間は、 の先頭と の先頭を 回比較し、小さい方を取り出して出力の末尾に加える。一方の列が空になったら、もう一方の列に残っている要素を、比較を行わずにそのまま順に出力の末尾に加える。

入力の 個の数の並び方は 通りすべてが等確率で現れるとする。このマージソート全体で行われる要素どうしの比較回数の期待値を求めよ。

この問題で使うもの

この問題を解けるようになるまで(30 技能)

ヒント

行き詰まったら、上から順に 1 つずつ開いてください。

ヒント 1

再帰でどの長さどうしの併合が何回起こるかを書き出し、期待値の線形性で各併合の期待比較回数を足し合わせる。

ヒント 2

長さ と の併合の比較回数は ( は一方が空になったとき他方に残る要素数)。 の要素 が の全要素より大きい確率は である。

ヒント 3

併合は が 回、 が 回、 が 回。期待比較回数は で 、 で となる。残りは の場合を計算して合計する。

答えと解説

答えを見る
結果を記録する(このブラウザにだけ保存されます):
解説を読む

再帰の構造 長さ の列は に分かれ、長さ の列はそれぞれ に、長さ の列は に分かれる。したがって行われる併合は

  • 長さ と の併合が 回
  • 長さ と の併合が 回
  • 長さ と の併合が 回

である。期待値の線形性により、各併合の比較回数の期待値を足せばよい。

各併合の入力の分布 入力が一様にランダムな並びなので、ある併合に入る 個の要素について、そのうちどの値が前半側( 個)に入るかの選び方は 通りが等確率である。併合での比較の様子は、 個を大きさの順に並べたときにどの順位が前半側の要素かだけで決まる。

長さ と の併合の比較回数 一方の列が空になったとき、もう一方に残っている要素の個数を とすると、比較 回ごとに 個が出力されるので、比較回数は である。 が先に空になったとき に残るのは「 のすべての要素より大きい の要素」であり、 が先に空になる場合も同様である。よって

(片方の項は必ず )。 の特定の要素 が の 個すべてより大きい確率は、 と の 個の計 個の中で が最大になる確率で である。したがって

  • :
  • : (確認: 個の側の要素が 個中最小・中央・最大のとき比較回数は で平均 )
  • :

合計

よって比較回数の期待値は である。

別解

入力は 通りが等確率なので、各部分列の相対順位は互いに独立で一様ランダムである。併合時の 列の相対順序も一様ランダムになる。長さ と の列を併合するとき、比較回数の期待値は である。これは、一方が空になった時点で他方に残る要素数の期待値を、全要素数から引いたものである。

  • 長さ の列の整列は、 の併合なので 回。
  • 長さ の列は に分かれる。長さ の整列に 回かかる。続く の併合は 回。直接数えても、長さ の要素が最小なら 回、それ以外なら 回なので平均 で一致する。よって長さ の整列は期待値 回。
  • 長さ は に分かれる。前半・後半の整列に合計 回。続く の併合は 回。

合計は である。

この問題の確認

AI が作成した問題です。公開前に次の確認を行いました。確認の方法について

間違いを報告する

この問題の誤り・分かりにくい点・難易度や学年のずれを知らせる
どこについての報告ですか

報告の内容と問題の番号を保存します。名前やメールアドレスは保存しません。

関連する問題