隣り合うデータを比較し、順序が逆であれば入れ替えるという操作を、データの端から端まで繰り返す単純なソート手法はどれか?
- ①選択ソート(選択法)
- ②挿入ソート(挿入法)
- ③バブルソート(交換法)
- ④マージソート(併合法)
答えと解説を見る
正解は「バブルソート(交換法)」。となりどうしを比べ、順が逆なら入れ替えることを繰り返す方法。
なぜ
1回端まで比べ終えると、いちばん大きい値(または小さい値)が端に移って確定する。泡(バブル)が水面に上がるように見えることが名前の由来。仕組みは簡単だが、基本の形では比べる回数が n(n−1)/2 回(5個なら10回)と多い。
ひっかけ注意
・「選択ソート(選択法)」…残りの中から最小値を探し、未整列部分の先頭と入れ替える方法。1周で入れ替えは多くても1回。
・「挿入ソート(挿入法)」…整列ずみの部分に、次のデータを正しい位置へ差しこむ方法。既に並んでいれば比較は n−1 回で済む。
・「マージソート(併合法)」…半分に分けて整列し、2つの列を合わせながら並べる方法。並び方によらず計算量は O(n log n)。