応用情報技術者試験ナビ ロゴ 応用情報技術者試験ナビ
本日は試験日

応用情報技術者試験 令和6年春 午前問7 解説付き過去問

問題

整列方法に関するアルゴリズムの記述のうち、バブルソートの記述はどれか。 ここで、整列対象は重複のない1から9の数字がランダムに並んでいる数字列とする。

正解

解説

バブルソートとは、隣接する二つの要素を順番に比較し、必要に応じて入れ替えることを繰り返すことで整列を行うアルゴリズムである。

与えられた選択肢のアルゴリズムの動作を一つずつ詳しく確認する。

  • 最後から最初に向かって隣接した二つの数字を比較して、小さい数字が前に来るように入れ替える処理を繰り返す
    これはバブルソートの特徴的な動作である。
    バブルソートでは、数字列の一番後ろから前に向かって順番に隣接する数字を比較し、小さい方の数字を前に移動させる。この処理を繰り返すことで、小さい数字が徐々に前方へと移動していき、最終的には整列された数字列が得られる。

  • 数字列からランダムに基準となる数を選び、小さい数と大きい数のグループに分割し、それぞれ同じ操作を繰り返す
    これはクイックソートの動作であり、バブルソートではない。
    クイックソートは基準値(ピボット)を選んでそれを基準に分割することで整列するアルゴリズムである。

  • 数字列をほぼ同じ長さの二つに分割し、分割できなくなったらグループ内で小さい順に並べる操作を繰り返す
    これはマージソートの動作であり、バブルソートではない。
    マージソートは数字列を細かく分割した後に、整列しながら結合していくアルゴリズムである。

  • 未処理の数字列から最小値を探索し、先頭の数字と入れ替える操作を繰り返す
    これは選択ソートの動作であり、バブルソートではない。
    選択ソートは未処理部分から最小値を選んで、順に並べていく整列アルゴリズムである。

以上の比較から、バブルソートの特徴と一致するのは「数字列の最後の数字から最初の数字に向かって、隣り合う二つの数字を比較して小さい数字が前に来るよう数字を入れ替える操作を繰り返し行う。」という記述である。

したがって、これが正解となる。