配列 [6, 2, 7, 3, 1] を、隣り合う要素を左端から順に比較し、左の方が大きければ交換するバブルソートで昇順に整列する。1回目の走査(左端から右端までの比較と交換)を終えた直後の配列はどれか。
選択肢をタップすると、その場で答え合わせできます
正解と解説を見る
正解 A2, 6, 3, 1, 7
解説
正解は「2, 6, 3, 1, 7」です。1回目の走査では、6と2を交換して 2, 6, 7, 3, 1、6と7はそのまま、7と3を交換して 2, 6, 3, 7, 1、7と1を交換して 2, 6, 3, 1, 7 となります。このように、1回の走査で最大値の7が右端まで移動して位置が確定します。「1, 2, 3, 6, 7」は整列が完了した最終結果です。「2, 3, 1, 6, 7」は、2回目の走査を終えた後の状態です。「1, 2, 7, 3, 6」は、最小値を探して先頭の要素と交換する選択ソートの、1回目の操作の結果です。バブルソートの比較回数は、並びによらず最大で 回になります。
- #バブルソート
この調子でデータ構造とアルゴリズムを続けて解く
▶ この科目の連続演習へ進む(10問)