この概念が出た関連問題

この試験の対策ガイド

ITパスポート試験 対策ガイド

合格率・勉強法・参考書の選び方をまとめています

見る →
答えと解説を見る(先に解くのがおすすめ)

正解は ア

解説

このプログラムはバブルソートのアルゴリズムを使って配列を昇順(小さい順)に並べ替えています。初期配列 {2, 4, 1, 3} に対して、隣接する要素を比較し、左の要素が右の要素より大きい場合に入れ替えを行います。具体的な並び替えの過程は以下の通りです: 1回目:{2,4,1,3} → {2,1,4,3} → {2,1,3,4} 2回目:{2,1,3,4} → {1,2,3,4} 3回目:{1,2,3,4}(変化なし) よって最終的に {1,2,3,4} という昇順の配列が得られます。

なぜ他の選択肢は違うのか

選択肢 イ
配列が {1,3,2,4} となる場合、隣接要素の比較・交換が不完全な状態です。このプログラムは完全なバブルソートを実装しているため、このような中途半端な並び替え結果にはなりません。
選択肢 ウ
配列が {3,1,4,2} という順序になることはありません。バブルソートは隣接要素の比較・交換を行うため、このような大幅な位置の入れ替えは一度に起こりません。
選択肢 エ
配列が {4,3,2,1} という降順になることはありません。プログラムでは integerArray[m] > integerArray[m + 1] の場合に入れ替えを行うため、必ず昇順に整列されます。

解くときのポイント

バブルソートの動作を理解するコツは、「泡が水中を上っていくように、大きな数が後ろに移動していく」とイメージすることです。各走査で、最も大きな要素が確実に右端に移動していきます。また、二重ループの外側(nのループ)は走査回数、内側(mのループ)は隣接要素の比較回数を制御していることを覚えておくと良いでしょう。