令和3年度秋期 応用情報技術者試験 午前 問5
バブルソートの説明として,適切なものはどれか。
- ア ある間隔おきに取り出した要素から成る部分列をそれぞれ整列し,更に間隔を詰めて同様の操作を行い,間隔が1になるまでこれを繰り返す。
- イ 中間的な基準値を決めて,それよりも大きな値を集めた区分と,小さな値を集めた区分に要素を振り分ける。次に,それぞれの区分の中で同様の操作を繰り返す。
- ウ 隣り合う要素を比較して,大小の順が逆であれば,それらの要素を入れ替えるという操作を繰り返す。
- エ 未整列の部分を順序木にし,そこから最小値を取り出して整列済の部分に移す。この操作を繰り返して,未整列の部分を縮めていく。
解答・解説を見る
正解:ウ
AI解説
バブルソートは、隣り合う要素同士を比較し、順序が逆であれば交換するという操作を配列の端から端まで繰り返すことで、大小関係が逆転している箇所を徐々に解消していく整列アルゴリズムである。 ア: これはシェルソートの説明であり、間隔を空けた部分列を整列してから間隔を詰めていく手法である。 イ: これはクイックソートの説明であり、基準値(ピボット)で要素を振り分けて再帰的に整列する手法である。 ウ: 隣接する要素を比較し、順序が逆なら交換するという操作を繰り返す方式はバブルソートの定義そのものであり、これが正解である。 エ: これはヒープソートの説明であり、未整列部分を(二分)ヒープ(順序木)として扱い最小値・最大値を取り出していく手法である。 💡 整列アルゴリズムは動作原理で識別する。隣接交換=バブル、間隔を詰めて整列=シェル、基準値で分割=クイック、ヒープ利用=ヒープソートと対応させて覚える。
出典:令和3年度 秋期 応用情報技術者試験 午前 問5 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。