Pythonの選択ソート
リストを整列済み領域と未整列領域に分けます。
Pythonの選択ソートとは?
リストを整列済み領域と未整列領域に分けます。
残りの最小値を順に正しい位置へ置きます。
どのような場面で使う?
- アルゴリズムとデータ構造を理解する。
- 各ステップと境界ケースを確認する。
- 実行時間とメモリ使用量を比較する。
Pythonの選択ソートのビジュアライザー
O(n²)再生またはステップを使って、比較とデータ移動を順に確認できます。
サンプルコード
main.py
def selection_sort(values):
result = values.copy()
for start in range(len(result)):
minimum = start
for index in range(start + 1, len(result)):
if result[index] < result[minimum]:
minimum = index
result[start], result[minimum] = result[minimum], result[start]
return result
print(selection_sort([64, 25, 12, 22, 11]))
期待される出力
[11, 12, 22, 25, 64]
仕組み
各走査で最小値を探すため時間O(n²)、追加メモリO(1)です。
値を変更し、PythonをインストールせずにCodeUtilityオンラインPythonコンパイラで実行できます。
練習問題
入力値と境界ケースを変更し、より大きなデータでも動作を確認してください。
- 空入力、1要素、重複値を試す。
- 各ステップの状態を表示する。
- 別の解法と性能を比較する。