アルゴリズムと計算量の問題
互いに異なる 個の数を並べた配列 を、次の挿入ソートで昇順に並べかえる。
の順に、次の操作を行う。 とし、 から始めて、 である間「 と を比較し、 ならば を に移して を 減らす。 ならばそこで止める」をくり返す。止まったとき(または になったとき)、 とする。
ここで、数どうしの比較( と の比較)だけを数え、 かどうかの判定は数えない。最初の配列が 個の数の 通りの並べ方のどれであるかが同様に確からしいとき、比較回数の期待値を求めよ。
この問題で使うもの
- ソートの平均比較回数と転倒数(説明と入口の問題)
この問題を解けるようになるまで(30 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
一覧で見る(前提が先)
- 分数のたし算・ひき算
- 小数の四則計算
- 正負の数の加法・減法
- 分数のかけ算・わり算
- 四則の混じった計算の順序
- 正負の数の乗除・累乗と四則混合
- 約数の見つけ方
- 素因数分解と約数の個数
- 平方根の意味と根号の簡単化
- 根号の乗除と加減
- 指数の拡張と指数関数
- 対数の定義と性質
- 樹形図で数え上げる
- 積の法則と和の法則
- 和の法則・積の法則と樹形図
- 順列・円順列・重複順列
- ソート・探索の最悪比較回数
- 組合せ
- 確率の定義と和事象・余事象
- 期待値
- 確率変数と確率分布
- 平均と合計
- 平均値・中央値・最頻値
- 代表値(平均値・中央値・最頻値)
- 分散と標準偏差
- 変量の変換と平均・分散
- 確率変数の期待値・分散と
- 確率変数の和と積(独立な場合)
- 指示変数と期待値の線形性
- ソートの平均比較回数と転倒数
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
各 について、 番目の要素を挿入するときの比較回数の期待値を求め、期待値の線形性で足し合わせる。
ヒント 2
より大きい既存要素の個数を とすると、比較回数は なら 回、 なら 回。 は を等確率でとる。
ヒント 3
番目の挿入の比較回数の期待値は となる。これを から まで足す。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
番目の要素 を挿入するとき、 はすでに昇順に並んでいる。このうち より大きいものの個数を とする()。
- のとき:大きい 個との比較で 回、そのあと より小さい要素との比較で止まるので 回、合わせて 回。
- のとき: 個すべてと比較して になって終わるので 回( より 少ない)。
ランダムな並べ方では、 が最初の 個の中で何番目に大きいかは等確率なので、 は を等確率 でとる。よって 番目の挿入での比較回数の期待値は
期待値の線形性より、全体の期待値は
ここで 、
したがって期待値は
(一般に 個のときは 、 となる。 を代入すると で一致する。)
別解
番目の要素 を挿入するとき、整列済みの先頭 個のうち より大きいものの個数を とする()。相異なる数で並びが同様に確からしいので、 は の各値を確率 でとる。
比較回数は、 のとき、 個の大きい要素との比較と、止まるための 1 回の比較で 回。 のとき( が最小)は になるまで 回比較し、 の判定は数えないので 回。
よって 番目の期待比較回数は
。
合計は 。
検算: 期待転倒数 、各挿入で最後の比較( が最小でないとき 1 回)を加えると 。一致する。