応用情報技術者 2022年 秋期 午前2 問06
問題文
未整列の配列() を、次の流れ図によって整列する。ここで用いられる整列アルゴリズムはどれか。

選択肢
ア:クイックソート
イ:選択ソート
ウ:挿入ソート
エ:バブルソート(正解)
未整列配列の整列アルゴリズム判別【午前2 解説】
要点まとめ
- 結論:図の処理は隣接要素の比較と交換を繰り返すバブルソートの特徴を示しています。
- 根拠:内側ループで隣接要素を比較し、大小関係に応じて交換を行い、外側ループで全体を繰り返す構造です。
- 差がつくポイント:交換処理の具体的な手順とループの方向性、隣接要素比較の有無を正確に理解できるかが鍵です。
正解の理由
このフローチャートは、配列の隣り合う要素 と を比較し、大小関係に応じて交換処理を行っています。内側ループは を後ろから前へ減少させながら隣接要素を比較し、外側ループは を1から まで増加させて全体を繰り返します。この動作はバブルソートの典型的な処理手順であり、選択肢の中でこれに該当するのはエ: バブルソートです。
よくある誤解
隣接要素の比較と交換があるため、挿入ソートや選択ソートと混同しやすいですが、挿入ソートは挿入位置を探して要素を移動し、選択ソートは最小値を選んで交換します。これらとはループ構造が異なります。
解法ステップ
- 内側ループの変数 が後ろから前へ減少していることを確認する。
- 隣接要素 と の比較を行い、大小関係で交換処理を実施。
- 交換処理後、再び隣接要素の比較に戻るループ構造を確認。
- 外側ループ は1から まで増加し、全体の繰り返しを制御。
- これらの特徴がバブルソートの典型的な動作であると判断。
選択肢別の誤答解説
- ア: クイックソート
ピボット選択と分割再帰が特徴で、隣接要素の単純比較交換は行わない。 - イ: 選択ソート
最小値を選んで先頭と交換するため、隣接要素の比較交換はしない。 - ウ: 挿入ソート
挿入位置を探して要素を移動するが、内側ループは前から後ろへ進むのが一般的。 - エ: バブルソート
隣接要素を比較し、条件に応じて交換を繰り返す典型的なアルゴリズム。
補足コラム
バブルソートは最も基本的な整列アルゴリズムの一つで、隣接要素を比較しながら大きい値を徐々に後ろへ「泡のように」移動させることから名付けられました。計算量は平均・最悪ともに であり、大規模データには不向きですが、アルゴリズム学習の入門として重要です。
FAQ
Q: バブルソートと挿入ソートの違いは何ですか?
A: バブルソートは隣接要素を比較して交換を繰り返すのに対し、挿入ソートは未整列部分の要素を適切な位置に挿入して整列します。
A: バブルソートは隣接要素を比較して交換を繰り返すのに対し、挿入ソートは未整列部分の要素を適切な位置に挿入して整列します。
Q: なぜ内側ループが後ろから前へ進んでいるのですか?
A: バブルソートでは大きい値を後ろに「泡のように」押し上げるため、後ろから前へ比較しながら交換を行います。
A: バブルソートでは大きい値を後ろに「泡のように」押し上げるため、後ろから前へ比較しながら交換を行います。
関連キーワード: バブルソート、配列整列、ループ構造、隣接要素比較、交換処理

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

