アルゴリズム|DX(デジタルトランスフォーメーション)の用語

アルゴリズムとは、古くはインドの数学に由来する言葉だそうですが、ここではコンピューターサイエンスでのアルゴリズムという言葉について説明します。

コンピューターやスマートフォンでは、いろいろなソフトウェアやアプリが動作しています。最近では、小学校でもプログラミング(プログラムを書くこと)の授業が実施されるようになりましたので、そのソフトウェアやアプリの動作を記述するものが「プログラム」と呼ばれることは多くの方がご存知だと思います。

そのプログラムは、人間が記述するものですので、人間が理解しやすいルール体系の上に成り立っています。しかし、世界の言語(自然言語)に、英語やスペイン語や中国語があるのと同様に、プログラムの世界にもいくつもの種類があります。具体的には、Basic、Java、C++、PHP、Python などですが、これらはプログラミング言語と呼ばれます。

私たちが日常で使う言葉は人が人に何かを伝えるために使いますが、プログラミング言語は人がコンピューターに動作を伝えるためのものです。

つまり、それぞれのプログラミング言語のルールに則ってコンピューターやスマートフォンを動かすためにプログラムを書くわけですが、アメリカ人と話すときには英語で話すように、プログラミングの世界でも用途によってプログラミング言語を使い分けることになります。

そして、それぞれのプログラミング言語には、それぞれのルール(書き方)がありますので、同じことをプログラミング(コーディング、文字として記述)するときに、具体的な記述内容が異なります。単純に四則演算の記述でさえ異なれば、基本的な繰り返し(リープ)の演算の記載方法も微妙に違っていたりします。

一方、アルゴリズムとは、何かに到達するための考え方や手続きのことです。 ですので、ある1つのアルゴリズムに対しても、プログラミング言語が違えば、プログラム(コード)は微妙に違うものになります。

逆に言えば、プログラム(コード)の具体的な記述方法が微妙に違っていたとしても、その背景にある考え方・手続きが同じであれば、アルゴリズムは同一のものであると言います。

例えば、1つの袋にミカンが3つ入っていて、同じものが5袋あったとします。 全部でミカンは何個ありますか? という問いに対して、

【アルゴリズム1】 3×5=15

【アルゴリズム2】 3+3+3+3+3=15

のどららも正解ですが、計算のやり方・手続きが異なっています。このそれぞれがアルゴリズムであり、これら2つは異なるアルゴリズムなのです。決して、プログラミング言語の種類による記載方法の違いではなくて、ゴールに辿り着く手続き(手順)の違いです。

アルゴリズムの教科書には、ソート(並べ替え)の手順についての説明が出てきます。例えば昇順に(小さい数から大きい数へ)数を並び替える場合です。

最初の数字を次の数字と順番に比較しながら順番を入れ替えていく方法や、全ての隣り合う2つの数字で大小を比較して順番を入れ替えていく方法などがありますが、このそれぞれの考え方・やり方がアルゴリズムです。

コールセンター代行サービス(トップページ)

コールセンターBPO・コラム <一覧>