正解は ア
このプログラムはバブルソートのアルゴリズムを使って配列を昇順(小さい順)に並べ替えています。初期配列 {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} という昇順の配列が得られます。
バブルソートの動作を理解するコツは、「泡が水中を上っていくように、大きな数が後ろに移動していく」とイメージすることです。各走査で、最も大きな要素が確実に右端に移動していきます。また、二重ループの外側(nのループ)は走査回数、内側(mのループ)は隣接要素の比較回数を制御していることを覚えておくと良いでしょう。