挿入ソート


N個のデータが,配列 a[0]〜 a[N-1]に格納されているとする.

挿入ソート

  1. a[1]をリスト(a[0])の適切な位置(a[1]が小さければ前,大きければ後ろ)に挿入する
  2. 小さい順に並ぶよう,a[2]をリスト(a[0], a[1])の適切な位置に挿入
  3. 小さい順に並ぶよう,a[3]をリスト(a[0], a[1], a[2])の適切な位置に挿入
  4. 小さい順に並ぶよう,a[4]をリスト(a[0]〜 a[3])の適切な位置に挿入
  5. ...
  6. 小さい順に並ぶよう,a[N-1]をリスト(a[0]〜a[N-2])の適切な位置に挿入
      for(k=2; k<N; k++) {
              小さい順に並ぶよう,a[k]をリスト(a[0]〜a[k-1])の適切な位置に挿入
      }

小さい順に並ぶよう,a[k]をリスト(a[0]〜a[k-1])の適切な位置に挿入する操作 :