アルゴリズムとは

アルゴリズムとは、問題を解くための計算手順です。通常、コンピューター用語として使用され、コンピューターが効率的に問題を解決するための計算手順や処理手順を意味します。アルゴリズムという名前は、イランの数学者であり天文学者でもあるアル=フワーリズミーに由来しています。

実際にコンピューターに処理をさせるために、アルゴリズムをプログラミング言語で記述したのがプログラムです。IT化が進んだ現在では、日常のさまざまな場所で使用されています。電車や車を使用するときに使う乗り換え案内や、カーナビもその一つです。出発地から目的地までのルートを見つけ、どのルートを通るのが一番早いのかを計算し、表示するのにも使われています。

また、Googleの検索結果の表示にもアルゴリズムが使用されており、Googleの検索アルゴリズムとも呼ばれています。検索で抽出されたページの表示順位に関するものですが、Google がそのアルゴリズムを公開しておらず、大きく変更することもあり、ニュースで取り上げられたこともあります。

プログラミングで多く利用されるアルゴリズムに、ソートアルゴリズムと検索アルゴリズムがあります。データを小さい順に並べる昇順や、大きい順に並べる降順など、データをある規則でソートさせるのがソートアルゴリズムです。データの中から条件にあったものを抽出するのが検索アルゴリズムです。おもなソートアルゴリズムとして、バブルソート、クイックソート、マージソートの3つが挙げられます。
バブルソートは、データの末尾から順に隣の要素を比較して、順番を入れ替えるという処理を繰り返す方法です。クイックソートは、基準値を決めて、データを基準値以上と基準値未満の2つのグループに分割するという処理を繰り返す方法です。マージソートは、データの分割を繰り返した後、バラバラにした要素をマージしていく方法です。

おもな検索アルゴリズムとして、線形探索と二分探索の2つが挙げられます。線形探索は、とてもシンプルで、先頭のデータから順に条件と照らし合わせて調べる方法です。二分探索は、ソートされたデータを2つのグループ分けて、どちらのグループに探している要素があるかを判断する処理を繰り返して、検索範囲を狭めていく方法です。

データを処理するためのアルゴリズムは、たくさん存在します。その中で、最適なアルゴリズムを選択しなければ、コンピューターは、無駄な計算に時間を費やすことになります。そのため、プログラミング言語だけでなくアルゴリズムを学ぶこともプログラミングには必要だと言われています。