Pythonアルゴリズム

Pythonの挿入ソート

手札を順番に並べる操作に似ています。

Pythonの挿入ソートとは?

手札を順番に並べる操作に似ています。

各要素を整列済み部分の適切な位置へ挿入します。

どのような場面で使う?

  • アルゴリズムとデータ構造を理解する。
  • 各ステップと境界ケースを確認する。
  • 実行時間とメモリ使用量を比較する。

Pythonの挿入ソートのビジュアライザー

再生またはステップを使って、比較とデータ移動を順に確認できます。

サンプルコード

コードを実行 →
main.py
def insertion_sort(values):
    result = values.copy()
    for index in range(1, len(result)):
        current = result[index]
        position = index - 1
        while position >= 0 and result[position] > current:
            result[position + 1] = result[position]
            position -= 1
        result[position + 1] = current
    return result

print(insertion_sort([9, 5, 1, 4, 3]))

期待される出力

[1, 3, 4, 5, 9]

仕組み

大きい値を右へずらして挿入位置を作り、ほぼ整列済みのデータでは効率的です。

値を変更し、PythonをインストールせずにCodeUtilityオンラインPythonコンパイラで実行できます。

練習問題

入力値と境界ケースを変更し、より大きなデータでも動作を確認してください。

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