「アルゴリズム」の解説
流れ図
ある問題を解くための一連の処理手順を「アルゴリズム」といいます。処理の手順が必ずしも1通りだけではない場合、アルゴリズムによって手順の明確化を行い、プログラムを効率よく作成することができます。アルゴリズムを分かりやすく図で表したものが「流れ図(フローチャート)」です。
流れ図には、日本工業規格(JIS規格)によって定められた記号が用いられ、プログラム手順だけでなくデータの経路や制御を示すことも可能です。
アルゴリズムの基本構造
アルゴリズムの基本構造には順番に流れを示した「順次構造」、条件によって処理が選択される「選択構造」、条件によって同一の処理が繰り返される「繰返し構造」があります。
順次構造
選択構造
繰返し構造
基本的なアルゴリズム
代表的なアルゴリズムとして「合計」、「探索」、「併合」、「整列」などを挙げることができます。
合計
足し算のことです。足す回数が1回から数回程度の場合は順次構造で記述し、複数回のものは選択構造や繰返し構造で記述します。最も基本的なアルゴリズムと言えます。
探索(サーチ)
与えられた条件に合致するデータを見つけるためのアルゴリズムです。探索、あるいは検索とも呼ばれます。探索には「線形探索法」や「2分探索法」などの手法が知られています。
- 線形探査法(リニアサーチ)
- 先頭のデータと条件が合致するかどうかを確認し、違っていれば2番目のデータと照合し、という形で、データの先頭から末尾まで、条件に合うものが見つかるまで順番に検索してゆく手法です。
- 二分探査法(バイナリサーチ)
- 対象が、データ群の中央にあるデータより前にあるか、後ろにあるかを判断し、2分したデータ群を取捨選択します。更に、残ったデータ群の中央から前後のどちらにあるかを判断し、取捨選択を繰り返して絞り込んでいきます。
併合(マージ)
2つのファイルの並び順を買えず、1つにまとめることです。
整列(ソート)
データの並び順をルールに従って整えることです。最も基本的な手法として「バブルソート」があります。
- バブルソート
- バブルソートは、隣接するデータの値を比較して、並べ替えるべきかどうかを判断し、必要に応じて並べ替える動作を繰り返す手法です。逐次比較することで、最終的にはデータの先頭から末尾までを順番に整列することができます。