見出し画像

3-12. 比較範囲の左から一つずつ広げていき、右端の値を整列済みの配列の適切な位置に挿入しながら整列を進めるアルゴリズム(挿入法の変法)で配列を昇順に整列する 第3章の整列アルゴリズム完了

 本記事では、比較範囲の左から一つずつ広げていき、右端の値を整列済みの配列の適切な位置に挿入しながら整列を進めるアルゴリズム(挿入法の変法)で配列を昇順に整列する問題演習をします。

問題 比較範囲の左から一つずつ広げていき、右端の値を整列済みの配列の適切な位置に挿入しながら整列を進めるアルゴリズムで、5つの要素をもつ配列を昇順に整列(ソート)します。各周の配列内容を記入してください。

整列前の配列
A[ 1 ] = 52
A[ 2 ] = 10
A[ 3 ] = 31
A[ 4 ] = 26
A[ 5 ] = 8

今回の挿入法の手順
1. 2番目の要素(インデックス1)から順に、未整列部分の先頭の値を「適切な位置」に挿入する。
2. 挿入時には、既に整列済みの部分の要素を後ろにずらしながら、適切な位置を確保する。
3. これを配列の最後まで繰り返す。

解答

図1. 今回の挿入法で配列データを整列した状態

 比較範囲の左から一つずつ広げていき、右端の値を整列済みの配列の適切な位置に挿入しながら、整列を進めていきます。

 これで、第3章整列アルゴリズムの解説は完了です。
 交換法(バブルソート)、選択法及び挿入法について解説しました。
 これらのアルゴリズムは、1回練習しただけでは完全に理解してアルゴリズムを書くことは出来ないと思いますので、忘れたころに何回か復習をした方が習得できると思います。
 スマホアプリの、アルゴリズム図鑑を使えば、配列データの移動・交換をビジュアル的に分かりますので、このアプリを並行することもおすすめします。

次は、第4章のデータ構造の解説に入ります。

以上です。

いいなと思ったら応援しよう!