アルゴリズムとプログラミング
n個の要素を整列するとき、要素の初期配置に関わらず最悪の場合でも時間計算量がO(n log n)となることが保証されている整列アルゴリズムはどれか。
ア.クイックソート
イ.バブルソート
ウ.マージソート正解
エ.挿入ソート
解説
整列アルゴリズムの実力は「最悪ケース」で測らないと本番で痛い目を見ます。マージソートは「必ず半分に割って、順番に合体させる」という構造上、どんな並びでも必ずO(n log n)が約束されています。
なぜ ウ が正解か
マージソートは要素列を再帰的に半分ずつに分割し(分割フェーズ)、ソート済みの小さな列を順序を保ちながら一つに合体させます(統合フェーズ)。分割の深さはlog₂n段、各段で合計n回の比較が発生するため、積算するとO(n log n)になります。初期配置がどんな順序であっても分割回数は変わらないため、最悪・最良・平均のすべてでO(n log n)が保証されます。
出典: AI生成問題(学習用)