挿入ソート
挿入ソート(Insertion Sort)は、 単純なソートアルゴリズムの一つです。
アルゴリズムの仕組み
挿入ソートは、配列の要素をソートされた部分と未ソートの部分に分けて考えます。未ソートの部分から要素を一つずつ取り出し、ソートされた部分の適切な位置に挿入することで、ソートを行います。
具体的な手順
配列の2番目の要素から始めます。
現在の要素を、 それより前のソート済み部分と比較します。
現在の要素よりも大きい要素を右にシフトして、挿入する場所を空けます。
現在の要素を空いた場所に挿入します。
このプロセスを配列の最後まで繰り返します。
図による説明
配列 [1-5] を挿入ソートでソートする過程を図で示します。
Step | Array | Key | Comparison | Action |
|---|---|---|---|---|
1 |
| 1 |
| Shift |
2 |
| 4 |
| Shift |
3 |
| 2 |
| Shift |
4 |
| 8 |
| No shift needed |
5 |
| Array is sorted |
表による時間計算量の比較
ケース | 時間計算量 |
|---|---|
最良の場合 | O(n) |
平均的な場合 | O(n^2) |
最悪の場合 | O(n^2) |
特徴
実装が簡単
小さなデータセットに対しては効率的
安定なソート (同じ値の要素の順序が保持されます)
追加のメモリをほとんど必要としません (インプレースソート)
ソース内の関連情報
ソースには、挿入ソートのような単純なソート方法は、 最悪の場合にO(n^2)の計算量が必要であると記載されています。
Last modified: 06 February 2025