バブルソート
出典: 令和6年度 春期 応用情報技術者試験 午前 問7 (IPA)
整列方法に関するアルゴリズムの記述のうち,バブルソートの記述はどれか。ここで,整列対象は重複のない 1 から 9 の数字がランダムに並んでいる数字列とする。
- ア 数字列の最後の数字から最初の数字に向かって,隣り合う二つの数字を比較して小さい数字が前に来るよう数字を入れ替える操作を繰り返し行う。
- イ 数字列の中からランダムに基準となる数を選び,基準より小さい数と大きい数の二つのグループに分け,それぞれのグループ内も同じ操作を繰り返し行う。
- ウ 数字列をほぼ同じ長さの二つの数字列のグループに分割していき,分割できなくなった時点から,グループ内で数字が小さい順に並べる操作を繰り返し行う。
- エ 未処理の数字列の中から最小値を探索し,未処理の数字列の最初の数字と入れ替える操作を繰り返し行う。
正解と解説を見る
正解: ア
- ア: 最後から最初に向かって隣り合う二つを比較し、小さい方が前に来るよう入れ替えるバブルソートの説明です。正しい答えです。
- イ: 基準値 (ピボット) より小さいか大きいかで二分するクイックソートの説明です。
- ウ: ほぼ同じ長さに分割し、その後整列しながら併合するマージソートの説明です。
- エ: 未整列部分から最小値を探して先頭と入れ替える選択ソートの説明です。
ポイント
- バブルソート: 隣り合う要素を比較して、順序が逆なら入れ替える操作を繰り返します。端から端まで走査すると、1 要素ずつ確定していきます。
- 選択肢の他の記述は、クイックソート (基準値で二分)、マージソート (分割して併合)、選択ソート (最小値を探して先頭と交換) です。