令和6年度 春期 午前 問7
アルゴリズム
バブルソートの記述
整列方法に関するアルゴリズムの記述のうち,バブルソートの記述はどれか。ここで,整列対象は重複のない 1 から 9 の数字がランダムに並んでいる数字列とする。
- ア数字列の最後の数字から最初の数字に向かって,隣り合う二つの数字を比較して小さい数字が前に来るよう数字を入れ替える操作を繰り返し行う。
- イ数字列の中からランダムに基準となる数を選び,基準より小さい数と大きい数の二つのグループに分け,それぞれのグループ内も同じ操作を繰り返し行う。
- ウ数字列をほぼ同じ長さの二つの数字列のグループに分割していき,分割できなくなった時点から,グループ内で数字が小さい順に並べる操作を繰り返し行う。
- エ未処理の数字列の中から最小値を探索し,未処理の数字列の最初の数字と入れ替える操作を繰り返し行う。
答えと解説を見る
✓ これが正解ア数字列の最後の数字から最初の数字に向かって,隣り合う二つの数字を比較して小さい数字が前に来るよう数字を入れ替える操作を繰り返し行う。
解説
隣り合う二つを比べて入れ替える整列です。
設問は、四つの整列の説明のうち、バブルソートに当たるものを選ばせています。軸になるのは、比べる相手が隣どうしかどうかという一点です。バブルソートは、並んでいる数字を隣どうしで比べ、順序が逆であれば入れ替えるという操作を、端から端まで繰り返します。小さい数字が泡のように少しずつ手前へ移っていく様子から、この名で呼ばれます。したがって、数字列の最後の数字から最初の数字に向かって、隣り合う二つの数字を比較して小さい数字が前に来るよう数字を入れ替える操作を繰り返し行う、という記述が当てはまります。どちらの端から進めるかは組み方の都合であって、この方法かどうかを分ける条件ではありません。分ける条件は、あくまで比べる相手が隣に限られているかどうかです。
ほかの選択肢はなぜ違うのか
- イ数字列の中からランダムに基準となる数を選…:基準となる数を一つ選び、それより小さい組と大きい組に振り分けたうえで、各組でも同じことを行う方法の説明です。比べる相手が隣どうしに限られていません。
- ウ数字列をほぼ同じ長さの二つの数字列のグル…:ほぼ同じ長さに分け続け、分けきったところから小さい順に並べていく方法の説明です。順序が付くのは分けた後の段階であり、隣どうしの交換を積み重ねる進め方ではありません。
- エ未処理の数字列の中から最小値を探索し,未…:まだ処理していない部分から最小値を探し、その部分の先頭と入れ替える方法の説明です。入れ替えは行うものの、探す相手は隣ではなく未処理の全体になります。
この問題の用語
- アルゴリズム問題を解くための、決まった手順や考え方そのものです。同じ問題でも手順によって、処理にかかる時間や必要な記憶量が変わります。
出典:令和6年度 春期 応用情報技術者試験 午前 問7
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)