エクセルの使い方
エクセルの使い方を覚えよう




マクロ集目次に戻る


エクセルマクロでアルゴリズムを学ぼう

スポンサード リンク

インサーションソートの解説

インサーションソートの概要

インサーションソートとは、まず、最初の2つの数字を比較して望みの順番に並べ替え、次の数字をその2つと比べて適切な位置に挿入して、さらに次の数字を並べ替えが完了している3つと比べて適切な位置に挿入して・・・、というのを全ての数字について行うアルゴリズムです。

今回は、左のような適当に並んでいる数字を、右のように並べ替える、というのを例にして考えていきたいと思います。

元の数値
35428 1697
ソート後
12345 6789


インサーションソートの具体的な手順

スポンサード リンク

では、具体的に、インサーションソートソートは、どのような手順でソートを行うかを説明していきます。 今回は左から右にいくにつれ数字が段々大きくなっていくような順番(昇順)に並び替えを行おうと思います。インサーションソートソートでは、以下の手順で、ソートをしていきます。

  • まず、左から2つの数字を比較して小さい数字が左、大きい数字が右に来るようにする。
  • 次に、左から3つ目の数字を、その並べ替えられた2個の数字と比較して、適切な位置に挿入する。さらに、この手順を詳細に書くと、

    1. 3つ目の数字と2つ目の数字を比較する。
    2. その結果、3つ目の数字のほうが大きい場合には、この段階で3個の数字の並べ替えが完了するため、次のステップに進む。
    3. もし、2つ目の数字のほうが大きい場合には、さらに、1つ目の数字と3つ目の数字を比較して、適切な順序に並べ替えを行う。

    といった、手順を踏みます。

  • 左から4つ目の数字を、その並べ替えられた3つの数字と比較して、適切な位置に挿入する。
       ・・・
というのを繰り返します。


インサーションソートの実際の様子

1巡目

一番左の2つの値を比較して、大きい数字が右にくるようにします。

1:
比較
35 42 81 69 7
そのまま
35 428 1697

2巡目

一番左の2つの値とその右の値を比較して、大きい数字が右にくるようにします。

2:
比較
35 42 81 69 7
入れ替える
34 52 81 69 7

3:
比較
34 52 81 69 7
そのまま
34 52 81 69 7

3巡目

一番左の3つの値とその右の値を比較して、大きい数字が右にくるようにします。

4:
比較
34 52 81 69 7
入れ替える
34 25 81 69 7

5:
比較
34 25 81 69 7
入れ替える
32 45 81 69 7

6:
比較
32 45 81 69 7
入れ替える
23 45 81 69 7

スポンサード リンク

4巡目

一番左の4つの値とその右の値を比較して、大きい数字が右にくるようにします。

7:
比較
23 45 81 69 7
そのまま
23 45 81 69 7


※この段階で、左の5つの数字の順番はきちんと並んでいることがわかっているので、4巡目ではこれ以上の比較は行いません。

5巡目

・・・という感じでどんどん並べ替えていきます。

インサーションソートの特徴

インサーションソートの特徴的なところとしては、

  • 元々の値が、並べ替え後の状態に近い状態であればあるほど、計算速度があがる(例えば、上記の4巡目では、5つの数値を並べ替えるために比較1回しか行っていません)
  • 逆に、元々の値が、ランダムに並んでいたり、並べ替えたい状態と逆の順番に並んでいたりすると、計算速度が著しく遅くなります。



インサーションソートのエクセルマクロ

インサーションソートマクロのダウンロード

インサーションソートのダウンロードはこちらからどうぞ




インサーションソートマクロの使い方

  • ダウンロードしたエクセルファイルを開きます。
  • マクロを実行してもよいかどうかを聞くウィンドウが表示されますので、「はい」をえらびます。
  • 「Ctrl」と「Shift」を押したままで「I」のキーを押します。

これで、プログラムの実行が開始されます。



免責事項

このプログラムを実行したことによる一切の損害について責任は負いかねます。ご自身の責任でご利用ください。

マクロ集目次に戻る


「経理事務のためのエクセル基礎講座(初級編)」(動画マニュアル 総収録時間162分)を無料プレゼント中です!

このマニュアルで解説していることを一通り学べば、経理事務を行う上で最低限必要となる知識が得られます。

ご登録者の方には、合わせて、公認会計士が実体験を通して身に付けたエクセルを使う技をメールにてお伝えしていきます!

↓ 登録はこちら ↓
名字
名前
メールアドレス


 





姉妹サイト:
情報処理技術者試験対策   逆ポーランド記法