令和3年度 高度共通 午前I(PM試験) 問3
バブルソートの説明として,適切なものはどれか。
- ア ある間隔おきに取り出した要素から成る部分列をそれぞれ整列し,更に間隔を詰めて同様の操作を行い,間隔が1になるまでこれを繰り返す。
- イ 中間的な基準値を決めて,それよりも大きな値を集めた区分と,小さな値を集めた区分に要素を振り分ける。次に,それぞれの区分の中で同様の操作を繰り返す。
- ウ 隣り合う要素を比較して,大小の順が逆であれば,それらの要素を入れ替えるという操作を繰り返す。
- エ 未整列の部分を順序木にし,そこから最小値を取り出して整列済の部分に移す。この操作を繰り返して,未整列の部分を縮めていく。
解答・解説を見る
正解:ウ
AI解説
バブルソートは、隣り合う要素同士を比較し、大小関係が逆であれば交換するという操作を繰り返して整列する単純なソートアルゴリズムである。「隣接要素の比較・交換の繰返し」が判断基準であり、ウが正しい。計算量は平均・最悪ともO(n²)である。 ア: 一定間隔おきに取り出した部分列を整列し、間隔を詰めながら繰り返すのはシェルソートの説明である。 イ: 基準値(ピボット)より大きい区分と小さい区分に振り分けて再帰的に整列するのはクイックソートの説明である。 ウ: 正しい。隣り合う要素の比較と交換を繰り返すのがバブルソートであり、小さい値が泡(バブル)のように浮き上がる様子が名前の由来である。 エ: 未整列部分を順序木(ヒープ)にして最小値を取り出す操作を繰り返すのはヒープソートの説明である。 💡 ソートは「隣同士=バブル」「間隔=シェル」「基準値で分割=クイック」「順序木=ヒープ」「最小値を選ぶ=選択」「適切な位置に挿す=挿入」とキーワード対応で即答できるようにする。
出典:令和3年度 秋期 プロジェクトマネージャ試験 午前I 問3 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。