IT/Web/マーケティング用語辞典

更新:2020年6月29日

あるごりずむ

アルゴリズム

問題を解決するための方法や手順のこと

POINTアルゴリズムとは

アルゴリズムとは、問題を解決するための方法や手順のことをいいます。アルゴリズムは、問題解決の手法を一般化するために必要であり、1つの問題や課題に対し、アルゴリズムは複数あることが多いです。同じ結果を出すアルゴリズムだとしても、アルゴリズムによって、問題解決の速度に差がでるため、適切にアルゴリズムを選んで使うことが重要です。

また、アルゴリズムの流れを図式化したものをフローチャートと呼び、アルゴリズムをわかりやすく説明するためによく使われます。

身近に活用されているアルゴリズムの例

アルゴリズムは生活の様々な場面で用いられています。

①地図のルート案内や乗り換え案内サービス
例えば、ルート案内サービスでは、「地点Aから地点Bへ行く」方法を調べると、移動手段や時間によって複数の経路を提示してくれます。提示された経路はすべて「地点Aから地点Bへ行く」という課題を解決していますが、解決する方法が異なります。そのため、この提示された経路それぞれが課題解決のためのアルゴリズムであるといえます。

②Googleの検索結果の順位
Googleは検索されたキーワードに対する最適な検索結果を表示させるために、検索結果の順位を決めるためのアルゴリズムを用意し、頻繁にアップデートを繰り返しています。Web上にあるすべてのコンテンツを検索キーワードによって順位付けする必要があるため、Gogleのアルゴリズムは膨大で複雑なものであると予想されています。

プログラミング分野における「アルゴリズム」の意味

プログラミングの分野でもアルゴリズムという言葉はよく使われます。プログラミングでは、コンピュータに問題を解決させるために、具体的な処理の手順や計算方法などをプログラムとして記述する必要があります。このとき記述する処理や計算方法がアルゴリズムです。アルゴリズムによってプログラムのサイズや汎用性、コンピュータの処理速度などが変わるため、より効率的なアルゴリズムの採用が必要です。

データを並べるアルゴリズム「ソートアルゴリズム」の代表例

データをある規則によって昇順(数値の大きい順)または降順(数値の小さい順)に並べ替えるアルゴリズムのことを「ソートアルゴリズム」といいます。ソートアルゴリズムには様々なアルゴリズムがありますが、中でも代表的なアルゴリズムを3つあげます。

①バブルソート
「データの末尾から隣接する要素同士で数値を比較し、必要に応じて入れ替える」という処理を繰り返すというアルゴリズムです。直感的に理解できる簡単なアルゴリズムですが、データ数が多くなると処理数が増加し、処理に時間がかかってしまうという特徴があります。

②クイックソート
「ある基準値を決めて、データ群を基準値以上・未満に分割して入れ替える」という処理を繰り返すアルゴリズムです。データの比較と入れ替えの回数が非常に少なく、名前の通り高速なソートを実現することができます。

③マージソート
「データの分割を繰り返し、要素をバラバラにした状態から要素の順序を適切に変えながら併合していく」ことでデータを並べ替えるアルゴリズムです。一度すべての要素を分解するため、処理時間が元データの順番によらないことが特徴です。

「アルゴリズム」を調べた人はこの用語も調べています

アルゴリズムの使用例

「このプログラムは処理が遅すぎるからアルゴリズムを見直そう」

より効率の良いアルゴリズムに変更することで、コンピュータの問題解決速度を向上させることができます。

「誰もがわかりやすいようにアルゴリズムをフローチャートで表そう」

フローチャートはアルゴリズムを視覚的にわかりやすい形で図式化したものです。アルゴリズムの構造や手順を把握するために便利です。

「どれが一番効率の良いアルゴリズムなのか見極めるのが難しいよ」

アルゴリズムの効率の良さは、基本的には計算量の多さできまります。データ量やデータの形などから、どのアルゴリズムが計算量少なく問題解決できるか確認しましょう。

アルゴリズムに関係した気になる話題

データを探索するアルゴリズム「探索アルゴリズム」の代表例

大量のデータの中からある条件に合致した目的の要素を探索するアルゴリズムのことを「探索アルゴリズム」といいます。中でも、代表的な探索アルゴリズムとして「線形探索」「二分探索法」の2つをあげます。

①線形探索
データ群の先頭の要素から順に条件と照らし合わせながら調べていくアルゴリズムです。シンプルですが、目的の要素がデータ群の最後にある場合、ほぼ全ての要素を比較しなくてはいけないというデメリットがあります。

②二分探索法
「整列されたデータ群を2つに分割し、目的の要素がどちらのグループにあるか判断する」という動作を繰り返し、検索範囲を狭めながら目的の要素を見つけ出すというアルゴリズムです。データ数が多くても、線形探索ほど処理手順が多くなくて済むという特徴があります。


アルゴリズムに関連する記事

この記事がお役に立ちましたら、"いいね!"をお願いします
minweb辞書のIT用語をお届けします