令和5年度秋期 応用情報技術者試験 午前 問6
あるデータ列を整列したら状態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

- ア クイックソート
- イ 挿入ソート
- ウ バブルソート
- エ ヒープソート
解答・解説を見る
正解:ウ
AI解説
状態0から状態1への変化(3,5,9,6,1,2→3,5,6,1,2,9)は、隣接する要素同士を比較・交換しながら最大値9を末尾まで順に送り出す動きであり、これは1回の走査で隣接要素を交換していくバブルソートの特徴的な挙動である。 ア: クイックソートは基準値(ピボット)で要素を大小に分割していく方式であり、隣接要素を1回の走査で末尾へ送り出す本問の推移パターンとは異なる。 イ: 挿入ソートは未整列部分から要素を1つ取り出し既整列部分の適切な位置に挿入する方式であり、最大値が隣接交換で末尾に移動していく本問の推移とは異なる。 ウ: 隣接要素の比較・交換を繰り返し、1回の走査ごとに最大値が末尾に確定していく推移と一致しており、バブルソートが正解である。 エ: ヒープソートはヒープ構造を構築してから最大値を取り出す方式であり、単純な隣接交換による推移とは異なる。 💡 状態の推移を見て「1回の走査で最大(または最小)値が端に1つずつ確定していく」パターンはバブルソートの典型的な特徴として覚えておくとよい。
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。