「アルゴリズム」とは、何らかの問題を解くための計算の実行手順のことです。
例えば、
- データを希望する順番に「並べ替える」
- データの中に、知りたい情報があるか「検索する」
- 似た情報は1つのかたまりとして認識するために「グルーピングする」
など、私たちがパソコンを使う時によくやっている操作の手順がアルゴリズムになります。
他にも、人工知能(AI)に関係するアルゴリズムも多くあります。
例えば、検索サイトで検索すれば、欲しいと思われる情報を列挙してくれます。
また、ネット通販のページで1度購入したら、 こちらの商品もいかがでしょうか のように、
関連商品をオススメしてくれる機能もよく目にするかと思います。
このような機能は、コンピュータの中で、 多くのアルゴリズムを組み合わせることによって実現されています。
ビジネスであれば、新しい効率的なアルゴリズムを開発すれば、顧客に
- 新しい機能による、革新的な「問題解決」
- 効率的な処理による「時間節約」
という付加価値をもたらすことができ、
同業他社への競争優位性にすることができます。
また、もしあなたがエンジニアやプログラマとして就職・転職を考えているなら、
世の中にあるアルゴリズムを理解しておき、
望む機能の実現に最適なアルゴリズムを選択できる
といった能力を磨いておくことも重要となります。
さらに、そもそも既存のアルゴリズムでは(効率的に)解けない問題について、
新しいアルゴリズムを開発するといったアルゴリズム理論に関係する能力を磨けば、
就職や転職の際に大きなアドバンテージとなります。
他にも、アルゴリズムを用いたトレードで利益を出していくことも原理的には可能となっています。
そこで本記事では、
- アルゴリズムとは?アルゴリズムに入門したい!
- アルゴリズムの例など、図を見ながら学べるといいなぁ
- アルゴリズムは、どう活用できるの?
といった、
- アルゴリズム初学者の方、
- アルゴリズムを活用していきたい方
- アルゴリズムを本格的に勉強していきたいあなた
のために、アルゴリズムをプログラミングしながら学べる、おすすめの本や入門書・参考書などをご紹介します。
本記事の概要
アルゴリズムとは?アルゴリズムに入門したいあなたにおすすめの本はこちらです
なぜアルゴリズムを学ぶ必要があるの?ってとこを、サクッと説明したいと思います。
アルゴリズムとプログラムの違いとは
最初に理解しておいて欲しいことは、「アルゴリズム」と「プログラム」の違いになります。
アルゴリズムは、上で説明したように、(シンプルな)物事を処理する「手順」になります。
プログラムも、物事を処理する「手順」なのですが、
より複雑な物事を処理する手順になります。
つまり、プログラムは、いくつかのアルゴリズムを組み合わせて、より大きな問題を解決するための手順、といったニュアンスになります。
例えば、カレーを作ることを考えてみると、
- 人参の処理をする
- ジャガイモの処理をする
- 肉を処理する
- 火を通す
といった、汎用性の高い、小さい単位の処理に分けられます。
これらのそれぞれのやり方・手順が「アルゴリズム」ということが多いです。
それに対して、カレーは
- 野菜を処理する
- 肉を処理する
- 火を通す
- 盛り付ける
のような一連の流れで完成します。
これらの手順の全てをまとめたものが「プログラム」となります。
つまり、プログラムは、アルゴリズムの組み合わせで作られている、というイメージになります。
自分にはアルゴリズムは関係ないよ〜
といった社会人の方などでも、
アルゴリズムの考え方「思考」を身につけておくと、
問題解決に大きく役立ちます↓
良いアルゴリズムをたくさん知っておけば、実現できる機能も増えますので、
より良いものを作るために、その部品となるアルゴリズムを知っておくことが役立つわけです。
というわけで、アルゴリズムを学ぶためのおすすめ本などを以下でご紹介します↓
1冊目はこちら:アルゴリズムの基本の基本から入門できる最初の1冊にもおすすめです↓
アルゴリズムを、はじめよう
本書は、アルゴリズムの入門の入門書という位置づけで、アルゴリズムとは?から丁寧に解説があり、なぜアルゴリズムが必要なのか、アルゴリズムの背景知識なども合わせて学べます。
他書ではアルゴリズムを学ぶために、まず様々なデータ構造の解説があったりと、アルゴリズムを学ぶ前に、なにこれ?とつまずいてしまう場合もあるのではないでしょうか。
特に独学で学ぶ方などは、最初は、分かりやすいアルゴリズムを、単純なデータ構造だけ用いて、とりあえず全体を通して理解してみるもの役に立ちます。
本書では、定番中の定番アルゴリズム9つについて、シンプルなデータ構造(変数と配列)を使って、フローチャート(アルゴリズムの流れを図にしたもの)も示しながら、分かりやすく解説してくれます。
アルゴリズムを初歩から学びたい方、他書を学ぶ基礎としたい方、独学で学びはじめた方など、アルゴリズムの最初の教科書としてもおすすめです。
本書を読んだ後に、以下で本格的なアルゴリズム本にステップアップすると、スムーズに力をつけれます。他書でつまづいたことがある方にもおすすめの1冊です。
アルゴリズムってなに?という初学者の方も、
アルゴリズムについて、絵で見ながらサクッと理解できる1冊です↓
アルゴリズム図鑑 絵で見てわかる26のアルゴリズム
本書は、アルゴリズムがどんなものなのか、基本的なものに絞って、図で示しながら、直感的にわかりやすく説明してくれます。
カラフルなイラストで、とっつきやすく、データがどんな手順で1つひとつ処理されていくかを、視覚的に理解することができます。アルゴリズムの初学者の方でも、図を追って見ていくだけで、アルゴリズムの基本を理解することができる良書です。
他書ではプログラミングを前提として解説されていることが多く、アルゴリズムの背景数学やコード例とかがほとんどです。そういうアルゴリズム本でつまずいた方も、本書はおすすめです。
特にアルゴリズム独学の方や、初めて学ぶ学生さんなど、まずこちらでアルゴリズムの概要をつかんでおいて、その後、他の一般的なアルゴリズム本に進むことで、つまづかずにスムーズに学んでいける1冊となっています。
アルゴリズムの定番の教科書といえばこちら↓
アルゴリズムイントロダクション 第3版 総合版 (世界標準MIT教科書)
本書は、アルゴリズムの教科書の定番のシリーズです。
計算幾科学の専門家の方4名が、教育用にまとめており、アルゴリズムの解説だけでなく、アルゴリズムの設計などの指針が得られる、充実の1冊です。
- アルゴリズムにはどんな概念があるのか
- それらの概念はどんな解析により表現できるのか
のようなポイントもシッカリ学べ、アルゴリズムの理解・設計・実装について、学部から大学院レベルの内容について、1冊で学べます。
もちろんエンジニアや研究者の方が手元に置いて、辞書のように使うこともできる良書となっています。
練習問題も豊富なので、1つひとつ身につけていくことで、確実にアルゴリズムの力を磨いていくことができます。
ちなみに、本シリーズには幾つかのバージョンがあります。
基本的には3部作で、それらをまとめた総合版があります↓
上の3冊をまとめた総合版がこちらになっています↓
原著もございます↓
総合版は分厚いので、授業で持ち運びが多い学生さんなどは、Kindle、もしくは、分冊でお求めになると良いかと思います。
もう少し基礎に絞ってアルゴリズムの基本をしっかり効率的に学べる1冊もございます↓
ただし、初学者向けではないのでご注意ください。
ある程度アルゴリズムの内容を薄く理解した後で、
アルゴリズムの基礎をきちんと理解するような位置付けの本となっています。
他にも、一度学ばれた経験がある方が、最近のアルゴリズムも含めて、サクッと復習したい、といった場合なら、リファレンス本として、以下のものもございます↓
新規アルゴリズムとして、(ボロノイ図の計算で使う)フォーチュンアルゴリズム、マージソート、マルチスレッドクイックソート、AVL平衡二分木、R木と四分木などが追加されています。
上記「MITのアルゴリズム・イントロダクション」では、
アルゴリズムの詳細については疑似コードで示されているのですが、 具体的なコードで学びたい場合もあるかと思います。
そういった場合には、各プログラミング言語ごとのアルゴリズムの解説本が役立ちます。
アルゴリズムを身につける勉強法の1つには、実際に手を動かしながら、打ち込みながら、体得するのも効果的です。
具体的なコード例を、自分でそのまま打ち込みながら実行して学ぶ方法を、「写経」と言います。
写経は初学者の方に効果的な学習方法の1つです。
そこで写経などにも使える、各言語ごとのアルゴリズム本をご紹介します。
プログラミング言語ごとのアルゴリズムの書籍はこちらです
「Python」でアルゴリズムを学びたいあなたはこちら
こちらの記事もございます↓
『「アルゴリズム」を「Python」で学びたいあなたにオススメの書籍はこちらです』
アルゴリズムを「C言語」で学びたいあなたはこちら
「C++」でアルゴリズムを学びたいあなたはこちら
「Java」でアルゴリズムを学びたいあなたはこちら
「PHP」でアルゴリズムを学びたいあなたはこちら
「C/C++/Java」でアルゴリズムを学べるお得な1冊はこちらです↓
ちなみに、子どもさんにアルゴリズム(やプログラミング)を学ばせたい、(一緒に学びたい)なら、こちらもございます↓
アルゴリズムを学べる絵本やおもちゃはこちらです(子どもさんと一緒にどうぞ)
アイデアはひとつじゃない!―アルゴリズムって、こういうもの (プログラミングを学ぶ前に読む アルゴリズムえほん)
本書は、小学生向けのアルゴリズムの入門書です。
小学生が出会うような身近な例を使って、
- アルゴリズムってどんなもの?
- 具体的にどんなときに使うものなの?
- 実際にどんな使い方ができるの?
といったアルゴリズムの考え方に触れることができます。
指導者用のページがありますので、親御さんが教える形で、プログラミングを親子で学ぶこともできます。
子どもさんにプログラミングを本格的に学ばせる前に読んでおくと、その後の理解が加速するシリーズとなっています。
こちらは続編があり、セットで読むことで理解が体系的になります↓
同様のコンセプトとして、こちらもございます↓
数独 ボードゲーム 小学生 アルゴリズム 色別 数独パズル SUDOKUパズル ナンプレ 脳トレ IQ数字 推理ゲーム 脳力開発 子供教育おもちゃ 数字 パズルゲーム IQ鍛える (色別数独)
数独 数独パズルボードゲーム 小学生 卓上ゲーム アルゴリズム SUDOKUパズル ナンプレ 脳トレ IQ数字 推理ゲーム 脳力開発 子供教育おもちゃ 数字 パズルゲーム IQ鍛える 大人も楽しめる (原色)
というわけで、本記事では、アルゴリズムに入門したい初学者向けのおすすめ本をご紹介しました。
こちらもございます↓
アルゴリズム実技検定 公式テキスト[エントリー~中級編] (Compass Booksシリーズ)
問題解決力を鍛える!アルゴリズムとデータ構造 (KS情報科学専門書)
しっかり学ぶ数理最適化 モデルからアルゴリズムまで (KS情報科学専門書
アルゴリズムとデータ構造
アルゴリズムとプログラミング (放送大学教材)
これだけはおさえたい 文系プログラマーの数学知識 基礎の基礎 (プロフェッショナル「確実」養成講座)
なっとく!アルゴリズム
うかる! 基本情報技術者 午後・アルゴリズム編 2018年版 (福嶋先生の集中ゼミ)
アルゴリズムトレーディング入門 (ウィザードブックシリーズ)
世界でもっとも強力な9のアルゴリズム
珠玉のプログラミング 本質を見抜いたアルゴリズムとデータ構造
プログラミングコンテストチャレンジブック 第2版 ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~
アルゴリズムパズル ―プログラマのための数学パズル入門
アルゴリズム辞典
改訂新版C言語による標準アルゴリズム事典 (Software Technology)
アルゴリズムデザイン
アルゴリズム設計マニュアル 上
アルゴリズムとデータ構造の設計法
The Algorithm Design Manual
暗号技術のすべて
世界標準MIT教科書 ストラング:線形代数イントロダクション
世界標準MIT教科書 Python言語によるプログラミングイントロダクション 第2版:データサイエンスとアプリケーション
人工知能 1番最初の入門書: ディープラーニングの祖先を理解する (ミント出版)
サクッとわかる人工知能 第2巻: ディープラーニングの祖先を「改良」する (ミント出版)
画像処理 1番最初の入門書
ちなみに上の3冊は、Kindle Unlimitedの登録することで、
- 無料で読むことが可能
です。
お試し登録(解約できて無料)をしてみてはいかがでしょうか(初回30日間無料で体験できます)↓
こちらの記事もございます↓
『「Python」についての記事の一覧(目次)はこちらです』
『「機械学習(人工知能)」についての記事の一覧(目次)はこちらです』