アルゴリズムとプログラミング
ヒープソートの計算量として正しいものはどれか。
ア.最良・平均・最悪ともにO(n^2)
イ.平均O(n log n)だが最悪O(n^2)になる場合がある
ウ.最良・平均・最悪ともにO(n log n)が保証される正解
エ.O(n)で動作する線形時間アルゴリズムである
解説
ヒープソートは「絶対に遅刻しない几帳面な人」みたいなもの。クイックソートという天才は普段は速いけど最悪の日(最悪ケース)はO(n^2)まで落ちる。でもヒープソートは「最悪の状況でも必ずO(n log n)を守る」という約束を絶対破らない。安定感では随一!
なぜ ウ が正解か
ヒープソートの計算量分析:①ヒープ構築フェーズ:O(n)②n回のヒープ操作(最大値取り出し+ヒープ再構成):各O(log n)×n回 = O(n log n)③合計:O(n) + O(n log n) = O(n log n)。最良・平均・最悪のすべてのケースでO(n log n)が保証される。これがヒープソートの最大の強み(クイックソートは最悪O(n^2))。
出典: AI生成問題(学習用)