前回の記事では、アルゴリズムの基本的な考え方について紹介しました。
今回はその続きとして、
データを「並べる」、データを「探す」ときに使われる代表的なアルゴリズムを見ていきます。
どれもプログラミングの基礎としてよく登場する重要な考え方です。
データの整列(ソート)とは、
データを一定のルール(昇順・降順など)で並べ替えることです。
例えば、次のような並びを考えてみます。
4 / 1 / 3 / 2
これを小さい順に並べると、
1 / 2 / 3 / 4
になります。
基本交換法は、隣り合うデータを比較し、順番が逆であれば交換する方法です。
水の中の泡が上に浮かび上がる様子に似ているため、
バブルソートとも呼ばれます。
仕組みは分かりやすいですが、
データ量が多いと処理回数が増えやすいのが特徴です。
基本選択法は、
データの中から最小値(または最大値)を選んで、先頭と交換する方法です。
「一番小さいものを探して前に持ってくる」
という考え方なので、理解しやすいアルゴリズムです。
基本挿入法は、
すでに並んでいるデータの中に、新しいデータを正しい位置へ挿入する方法です。
少ないデータや、
ほぼ整列済みのデータに対しては効率が良い方法です。
データの探索とは、
目的のデータがどこにあるかを探す処理のことです。
「この数字は配列の中に存在するか?」
「どの位置にあるか?」
といった処理で使われます。
線形探索法は、
先頭から順番にデータを1つずつ確認していく方法です。
シンプルで分かりやすい反面、
データが多いと時間がかかりやすいのが特徴です。
番兵法は、
線形探索法を少し効率よくするための工夫です。
探索したいデータを、あらかじめ配列の最後に追加しておくことで、
「配列の終わりかどうか」の判定を減らします。
処理内容はほぼ同じですが、
条件チェックの回数を減らせるというメリットがあります。
2分探索法は、
データがあらかじめ整列されている場合に使える高速な探索方法です。
ただし、整列されていないデータでは使えない点に注意が必要です。
今回は、データを扱う代表的なアルゴリズムを紹介しました。
次回は、これらのアルゴリズムを
フローチャートとして可視化する方法を解説していきます。