プログラミングでアルゴリズムって聞くけどよくわからないという人は多いのではないでしょうか。
必ずしもアルゴリズムを理解しないとプログラミング学習を始められないというわけではないですが、理解していたほうがベターです。
そこで本記事では、プログラミングのアルゴリズムについてその概要や種類、おすすめ本などについて説明していきます。
目次
プログラミングのアルゴリズムとは?
アルゴリズムは一般的に以下のような意味で使われてます。
問題を解決するための方法や手順のこと。問題解決の手続きを一般化するもの
参照:コトバンク
簡潔に言えば、問題解決のための手順や方法のことを意味します。
コンピューターに処理させる方法や手順がアルゴリズムとも言えます。
コンピューターが、問題を処理するにあたってなるべく効率よく、迅速に計算してくれるようなアルゴリズムが求められるわけです。
プログラミングアルゴリズムの例
本章では、プログラミングアルゴリズムの種類について代表的なものを抜粋して紹介していきます。
料理の例
プログラミングアルゴリズムは大根をいちょう切りでよく例えられます。
スライスしてから四等分にするケースと、四等分してからスライスするケースがあり、後者のほうがカットする回数を大幅に減らすことができます。
行うこと自体は同じであっても、手順が異なるだけで効率が大きく変わることがよくわかる事例です。
検索アルゴリズム
インターネットにちょっと詳しい人ならGoogleの検索アルゴリズムという言葉を聞いたことがあるのではないでしょうか。
このGoogleの検索アルゴリズムも、様々な要因によってWebページの検索順位を決めており、Googleの公式ページによるとは以下のように決定されます。
検索アルゴリズムはさまざまな要因(検索クエリの単語、ページの関連性や有用性、ソースの専門性、ユーザーの位置情報や設定など)を検討します。
参考:Google「検索アルゴリズムの仕組み」
このようにGoogleは、ただWebページを表示させているのではなく、インターネットを閲覧する人がよりよいコンテンツを閲覧できるように動作していることがわかります。
プログラミングアルゴリズムの種類
プログラミングアルゴリズムの種類としては以下のものが有名です。
・バブルソート
・ソートアルゴリズム
・探索アルゴリズム
・暗号化アルゴリズム
バブルソートについて簡単に説明すると、バブルソートは隣り合う要素の値を比較し、条件に応じた交換をしていきます。
参考:Wikipedia「バブルソート」
例えば、1946という数字を1469という順序にする場合、以下のような手順となります。
①1と9を比較するが交換しない
⇒1946
②9と4を比較して交換する
⇒1496
③9と6を比較して交換する
⇒1469
このように順に比較していくことで数字が整列されます。
上記は簡単な例ですが、他にも様々な種類があるので、実際にプログラミング言語を学んだ際にアルゴリズムを応用してコーディングをしてみましょう。
プログラミングアルゴリズムに関するおすすめ本
『アルゴリズム図鑑』第8刷の重版出来!読者の皆様に感謝申し上げます。
人気アプリの書籍化で、アプリ制作者の石田さんに加え、京大の宮崎先生に解説を追加いただきました。実は台湾で日本に近いくらい売れていて、人口比を考えるとアルゴリズムへの関心の高さを感じます。https://t.co/GimWSXyJGM pic.twitter.com/EIRDfAZGZi
— Kazuhiro Hata (@kazuhirohat) October 9, 2020
アルゴリズム図鑑という本がアルゴリズムの入門におすすめです。
バブルソートや挿入ソート、選択ソートといったアルゴリズムの種類についてかみ砕いて解説してくれます。
図やイラストも豊富ですので、難しい概念も直感的に理解することができるでしょう。
プログラミングアルゴリズムの学習から一歩進めるには?
プログラミングアルゴリズムをある程度理解できたなら学習をさらに進めていきましょう。
おすすめは無料学習サイトでの学習で、Progateやドットインストールを利用すれば、プログラミングの基礎が身に付きます。
一部有料ですが、無料でも多くの講座が提供されているので興味ある方はぜひチェックしておきましょう。
まとめ
プログラミングアルゴリズムにはいろいろと種類があることがわかりました。
アルゴリズムの理解が深まるとプログラミング学習も楽しくなると思いますので、ぜひ合わせて学んでみることをおすすめします。