令和3年度 秋期 応用情報技術者試験 午前 問5
テクノロジ/アルゴリズムバブルソートの説明として,適切なものはどれか。
出典:令和3年度 秋期 応用情報技術者試験 午前 問5
- アある間隔おきに取り出した要素から成る部分列をそれぞれ整列し,更に間隔を詰めて同様の操作を行い,間隔が 1 になるまでこれを繰り返す。
- イ中間的な基準値を決めて,それよりも大きな値を集めた区分と,小さな値を集めた区分に要素を振り分ける。次に,それぞれの区分の中で同様の操作を繰り返す。
- ウ隣り合う要素を比較して,大小の順が逆であれば,それらの要素を入れ替えるという操作を繰り返す。
- エ未整列の部分を順序木にし,そこから最小値を取り出して整列済の部分に移す。この操作を繰り返して,未整列の部分を縮めていく。
正解:ウ
解説
バブルソートは,隣り合う要素同士を比較して,大小の順序が逆であれば入れ替えるという操作を,交換が発生しなくなるまで繰り返す整列アルゴリズムです。1回のパスごとに未整列部分の最大値(又は最小値)が端に確定していきます。
選択肢ごとの解説
- ア誤り。一定間隔おきに取り出した部分列を整列し,間隔を狭めながら繰り返すのはシェルソートの説明です。
- イ誤り。基準値(ピボット)で大小2つの区分に振り分けて再帰的に整列するのはクイックソートの説明です。
- ウ正しい。隣り合う要素の比較と交換を繰り返すのがバブルソートです。
- エ誤り。未整列部分を順序木(ヒープ)にして最小値(最大値)を取り出す操作を繰り返すのはヒープソートの説明です。