挿入ソート 【insertion sort】 基本挿入法 / インサーションソート / 単純挿入法

概要

挿入ソート(insertion sort)とは、与えられたデータを大小などの順序通りになるよう並べ替えるソート(整列)アルゴリズムの最も基本的な手法の一つで、未整列の要素を一つずつ、整列済みのの適切な位置に挿入していくもの。

数値のを先頭から小さい順昇順)に並べる場合を考える。まず、先頭から2つのを比較して小さい方を先頭に、大きい方を2番目に置く。次に3番目のを取り出し、先頭・2番目と順に比較し、適切な位置に挿入する。

4番目以降も同様にして、n番目のを取り出して先頭からn-1番目までと順番に比較し、適切な位置に挿入する操作を繰り返す。これを末尾のまで繰り返せば、先頭が最も小さく末尾が最も大きい数値のが得られる。

n番目のを挿入する際、それが整列済みのの中で最も小さければ先頭のとの1回の比較で挿入位置が決定できるが、最も大きければ整列済みのの数(n-1回)だけ比較を繰り返さなければならない。

すなわち、要素が整列済みに近い状態ならば高速に整列を完了でき、最良計算時間はO(n)となるが、逆順に並んでいる場合は比較回数が爆発的に増大し、最悪計算時間は O(n2) となってしまう。この欠点をある程度緩和したアルゴリズムとして「シェルソート」(Shell sort)がある。

整列したいデータ列以外の記憶領域を用意しなくてよいインプレースソート(内部ソート)で、同じ大きさの要素の順序が維持される安定ソートである。アルゴリズムの理解や実装が容易なため、対象データが短いことが分かっている場合などに利用されることがある。人間に並べ替えをわせると、多くの人がまっさきに自然に思いつく方法であるとも言われる。

(2024.3.7更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる