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