Pythonアルゴリズム

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. 空入力、1要素、重複値を試す。
  2. 各ステップの状態を表示する。
  3. 別の解法と性能を比較する。
Python IDEで実行 →