令和5年度 春期 応用情報技術者試験 午前 問7

テクノロジアルゴリズム

この問題は2023(R5)春 応用情報技術者 午前に出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。

本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。

配列に格納されたデータ 2, 3, 5, 4, 1 に対して, クイックソートを用いて昇順に並べ替える。2回目の分割が終わった状態はどれか。ここで, 分割は基準値より小さい値と大きい値のグループに分けるものとする。また, 分割のたびに基準値はグループ内の配列の左端の値とし, グループ内の配列の値の順番は元の配列と同じとする。

解答・解説を読む

正解: 選択肢

クイックソートの分割手順

クイックソートは、基準値(ピボット)を選び、それより小さい値のグループと大きい値のグループに分割する操作を再帰的に繰り返す整列アルゴリズムです。

本問のルール:

  • 基準値はグループ内の配列の左端の値
  • 分割後の値の順番は、元の配列と同じ順序を保つ

【初期状態】
2,3,5,4,12, 3, 5, 4, 1

【1回目の分割】
対象:2,3,5,4,12, 3, 5, 4, 1

  1. 基準値は左端の 22
  2. 22 より小さい値のグループ:11
  3. 22 より大きい値のグループ:3,5,43, 5, 4 (元の順番を維持)
    結果、これらを「小さい値」「基準値」「大きい値」の順に並べます。
    1回目の分割後の状態:1,2,3,5,41, 2, 3, 5, 4
    この時点で、113,5,43, 5, 4 の2つのグループに分かれます。

【2回目の分割】
左側のグループ 11 は要素数が1つのため、これ以上分割できません(整列済み)。
したがって、右側のグループ 3,5,43, 5, 4 に対して2回目の分割を行います。
対象:3,5,43, 5, 4

  1. 基準値は左端の 33
  2. 33 より小さい値のグループ:なし
  3. 33 より大きい値のグループ:5,45, 4 (元の順番を維持)
    結果、並べ替えても 3,5,43, 5, 4 のままです。
    全体の配列として見ると、状態は 1,2,3,5,41, 2, 3, 5, 4 となります。

よって、2回目の分割が終わった状態は「ア」です。

各選択肢の解説

  • : 正解。上記の手順通り、2回目の分割が終了した時点での正しい配列です。
  • : 1,2,5,4,31, 2, 5, 4, 3。2回目の分割で基準値を誤って処理した場合などの結果です。
  • : 2,3,1,4,52, 3, 1, 4, 5。分割のルールや対象グループを誤って処理した結果です。
  • : 2,3,4,5,12, 3, 4, 5, 1。他の整列アルゴリズム(バブルソートなど)の途中経過と混同している可能性があります。