挿入法の並べ替え手順を確認しよう

学習の目的

  • ・ 挿入法の手順

挿入法の手順

挿入法での並べ替えをコンピュータでする場合は、1つの配列で行うことが多いです。データが多い場合、並べ替え用の配列を作り並び順だけが異なる同じデータの配列を2つ持つことは、メモリを余分に使用することになり無駄が多いためです。

それではコンピュータがどのようにして1つの配列で挿入法を実行していくか確認しましょう。


並べ替える前のデータ

並べ替える前のデータは次のとおりです。

このデータを昇順に並べ替えを行います。

挿入法は、0番目のデータが入っている状態で、1番目以降のデータを一つずつ挿入しながら並べ替えを行います。

0番目のデータはすでに挿入済みという想定の状態から処理を始めます。

最初のデータは、整列済みデータです。
最初の1件目はデータが1つしかないという状態なので自然と昇順に並んでいることにもなります。


添字1のデータを挿入する

添字1のデータ12を次の手順で挿入します。

  • 1. 挿入するデータを別の変数に保存する
  • 2. 配列の整列済みデータの右側から比較し、配列の先頭まで比較するか、挿入するデータが配列のデータより大きくなるまで3以降を繰り返す
  • 3. 配列の比較したデータを1つ右に移動する
  • 4. 次のデータとの比較のために配列の添字を1つ左に移動し、2へ戻る
  • 5. 繰り返しが終わると挿入位置が決まるので、追加データを挿入する

手順通りに確認しましょう。

・ 配列データと挿入したデータを比較する
・ 15 > 12 なので 15 を右に移動する
・ 先頭に12を入れる

データが挿入され、2件のデータが整列済みとなっていま。


1番目のデータ12が正しい位置に挿入されましたね。
続いて2番目のデータ 18 を挿入します。

添字2のデータ18を挿入する

・ 配列データと挿入したデータを比較する
・ 15 < 18 なので 15の右に値を入れます。

添字2のデータは移動はありませんが、挿入法では、挿入位置が決まったら、移動がない場合でも、プログラムの中では「比較して、同じ場所に代入する」という処理が行われます。
これも「挿入」として扱います。


添字3のデータ13を挿入する

・ 配列データと挿入したデータを比較する
・ 18 > 13 なので 18 を右に移動する
・ 次の配列データと挿入したデータを比較する
・ 15 > 13 なので 15 を右に移動する
・ 次の配列データと挿入したデータを比較する
・ 12 < 13 なので 12の右に値13を入れます。

ここは、挿入法での重要なポイントです。

挿入位置が決まるまで、確定済みデータの右端から順番にデータを右側へ移動させていきます。


添字4のデータ16を挿入する

・ 配列データと挿入したデータを比較する
・ 18 > 16 なので 18 を右に移動する
・ 次の配列データと挿入したデータを比較する
・ 15 < 16 なので 15の右に値16を入れます。

このように、挿入法はデータを挿入しながら並べ替えを行います。

データを入れていくと並べ替えが終わってるって、なんかすごい!

そうですね。入れながら並べ替えるため、交換法や選択法に比べ比較回数が少なくなっていることが特徴です。

挿入法をもっと確認したい場合は、「アルゴリズム学習ツール」を使ってみましょう。

次のリンクをクリックして体験してみましょう。

Well done!

次のステップに進みましょう!

次のステップに進む

← 前のステップにもどる