令和5年度 秋期 高度試験 午前I 問3

テクノロジアルゴリズム

この問題は2023(R5)秋 高度試験共通 午前Iに出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。

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

あるデータ列を整列したら状態0から順に状態1, 2, ・・・, Nへと推移した。整列に使ったアルゴリズムはどれか。

整列アルゴリズムの適用によるデータ列の状態推移
図の説明テキスト

整列アルゴリズムの適用によるデータ列の状態推移
状態0 3, 5, 9, 6, 1, 2
状態1 3, 5, 6, 1, 2, 9
状態2 3, 5, 1, 2, 6, 9
:
:
状態N 1, 2, 3, 5, 6, 9

解答・解説を読む

正解: 選択肢

正解の根拠

バブルソートは、隣り合う要素の大小を比較し、逆順であれば入れ替えるという操作をデータ列の端から繰り返し行うアルゴリズムです。1回のパス(走査)が完了するごとに、未整列部分の最大値(または最小値)が端に確定していくという特徴があります。データの推移において、端から順に要素が確定していく様子から判定できます。

各選択肢の解説

  • ア(クイックソート): 適当な基準値(ピボット)を選び、それより小さいグループと大きいグループに分割する操作を再帰的に繰り返すアルゴリズムです。
  • イ(挿入ソート): 未整列のデータから1つを取り出し、整列済みのデータ列の適切な位置に挿入していくアルゴリズムです。
  • ウ(バブルソート): 正解です。隣接する要素を比較・交換し、端から順に要素を確定させます。
  • エ(ヒープソート): データを未整列のヒープ(木構造)に構成し、そこから最大値(または最小値)を取り出して整列済みデータに移す操作を繰り返すアルゴリズムです。