問題 No.2103
未整理の複数の数値データの中から最小値または最大値を探索し、それを先頭の要素と交換する処理を繰り返すことで、全体を昇順や降順に並び替える代表的な整列アルゴリズムはどれか。
【正解の解説】
選択法(選択ソート)
トランプのカードを手札からバラバラに机の上に広げた状態から、まずは一番小さい数字を見つけて一番左に置き、次に残りのカードから一番小さいものを選んで左から2番目に置く作業を繰り返す様子に似ています。毎回全体を見渡して一番良いものを選ぶため、この名前がついています。
スポンサーリンク
【その他の選択肢の解説】
挿入法(挿入ソート)
選択ソートが「全体から一番小さいものを選ぶ」のに対し、挿入ソートは「すでに並んでいる仲間に新しいカードを正しい隙間に差し込んでいく」というアプローチをとります。トランプを左から順に整えながら一枚ずつ増やしていくイメージであり、カードを選ぶ基準のタイミングが異なるため注意が必要です。
交換法(バブルソート)
水底から気泡がポコポコと浮かび上がるように、隣り合う数値を比べて大小が逆なら入れ替える作業を端から端まで何度も行うのがバブルソートです。選択ソートが全体から最小値を直接探して先頭に持ってくるのに対し、バブルソートは地道に隣と比べ続ける点が根本的な違いとなります。
分割法(クイックソート)
基準となる数値を一つ決めて、それより小さいグループと大きいグループにパパッと振り分けていく高速なアルゴリズムです。最小値を探して地道に1つずつ確定させていく選択ソートとは異なり、全体を大きく分割しながら効率よく並び替えていく点が最大の特徴であり、処理の仕組み自体が異なります。