データ構造とアルゴリズム
配列 29, 10, 14, 37, 13 を選択ソート(未整列の部分から最小値を探し、未整列の部分の先頭と交換する)で昇順に並べる。この操作を2回行った後の配列はどれか。
- A10, 13, 14, 37, 29
- B10, 14, 29, 37, 13
- C10, 14, 13, 29, 37
答えと解説を見る
正解:A. 10, 13, 14, 37, 29
1回目は全体の最小値10を先頭の29と交換して 10, 29, 14, 37, 13 になります。2回目は2番目以降の最小値13を2番目の29と交換して 10, 13, 14, 37, 29 になります。選択ソートの比較は常に n(n−1)/2 回ですが、交換は1回の操作につき最大1回なので、書き込みの重いデータで有利なことがあります。10, 14, 29, 37, 13 は挿入ソートで2つの要素を差し込んだ後、10, 14, 13, 29, 37 はバブルソートを2パス行った後の配列です。
- A. 正しい。10と13が順に前へ交換されます。
- B. 挿入ソートで10と14を差し込んだ後の配列です。
- C. バブルソートを2パス行った後の配列です。