令和5年度 問60 バブルソートによる配列の並べ替え
手続 printArray は,配列 integerArray の要素を並べ替えて出力する。手続 printArray を呼び出したときの出力はどれか。ここで,配列の要素番号は1から始まる。 〔プログラム〕

コードをテキストで確認
○printArray()
整数型: n, m
整数型の配列: integerArray ← {2, 4, 1, 3}
for (n を 1 から (integerArrayの要素数 − 1) まで 1 ずつ増やす)
for (m を 1 から (integerArrayの要素数 − n) まで 1 ずつ増やす)
if (integerArray[m] > integerArray[m + 1])
integerArray[m] と integerArray[m + 1] の値を入れ替える
endif
endfor
endfor
integerArrayの全ての要素を先頭から順にコンマ区切りで出力する
1,2,3,4
1,3,2,4
3,1,4,2
4,3,2,1
先に解説を見る
正解ア
1,2,3,4
解説
この問題のポイント
隣り合う値を比べ、左が大きければ交換するのがバブルソートです。交換後の配列を次の比較へ引き継ぐと、大きな値が右へ移ります。毎回最初の配列に戻して考えないようにします。
処理を追うと
初期値は{2,4,1,3}です。
1周目:4と1を交換して{2,1,4,3}、次に4と3を交換して{2,1,3,4}。
2周目:2と1を交換して{1,2,3,4}。
それ以降は交換しません。
正解:ア
1, 2, 3, 4です。

続けて練習して、学習記録を残そう。
同じ分野の別の問題を解く同じ分野の問題
編集・確認:kakoloop · 編集方針
公開日:
内容更新:
問題・解説の誤りを報告する