応用情報技術者試験 平成28年度秋期 午前 問6「ヒープソートの説明として,適切なものはどれか。…」の正解と解説です。応用情報技術者試験の「テクノロジ系」分野の過去問で、これまでの受験者の正答率は約55%です。
エ. 未整列の部分を順序木にし,そこから最小値を取り出して整列済みの部分に移す。この操作を繰り返して,未整列の部分を縮めていく。
正答率 55.3%(941人中 520人が正解)
代表的な整列アルゴリズムの手順を識別する問題。ヒープソートは、未整列データを「親が子より常に大きい(または小さい)」という制約をもつ完全2分木=ヒープ(順序木)に構成し、根に来る最小値(または最大値)を取り出して整列済み部分へ移し、残りで木を再構成する操作を繰り返すアルゴリズムである。木の根が必ず最小(最大)になるため線形探索せずに最小値を取り出せる点が高速さの理由で、計算量は O(n log n)。この「順序木にして根から取り出す」という記述に合致するエが正しい。