アルゴリズムをマスターしたい人におすすめの本を紹介
プログラミングを始めてある程度たつと、 次にマスターしたくなるのがアルゴリズムです。 アルゴリズムをマスターしているかどうかでプログラミングの効率が随分と 違ってきます。
このページでは、初心者から中級者、上級者までおすすめできるアルゴリズムの本を紹介します。
アルゴリズムを、はじめよう
初心者・入門者におすすめできる本です。 検索やソート等の基本的なアルゴリズム9つに絞って、 その分解説に重点を置いている本です。
コードは「疑似言語」で書かれていて、イメージ図、フローチャートが あるので初心者でも丁寧に読み込んでいけば理解しやすい構成、説明となっています。
基本情報処理技術者試験の勉強をしている方にも難易度的にちょうど良いと思います。 アルゴリズムの基礎の基礎を学べる本としておすすめです。
基本情報技術者 大滝みや子先生のかんたんアルゴリズム解法 ~流れ図と擬似言語~ 第3版
基本情報技術者試験用の本ですが、受験しない人でも アルゴリズムの入門書としても十分使えます。
- 第1部 アルゴリズムと流れ図
- 第2部 擬似言語
となっており、午前問題の流れ図から午後問題の擬似言語までを学べます。
「第3版」となっているように、多くの人から支持されていることがわかります。 著者の大滝みや子さんは情報処理技術者試験対策の本を多数出版されており、 説明の上手な方です。
初心者・入門者・基本情報技術者試験受験者におすすめできる本です。
プログラミングの宝箱 アルゴリズムとデータ構造 第2版
アルゴリズムの入門書として、基本的なアルゴリズムが一通り解説されています。 それなりに内容も濃くなりますのでじっくりと腰を据えて取り組む必要があります。 JAVAとC言語によるサンプルコードがありますので、どちらかの言語を知っていると 読みやすいでしょう。
章立ては次の通りです。
- 第1章 ソート
- 第2章 サーチ
- 第3章 リスト
- 第4章 スタック&キュー
- 第5章 再帰呼び出し
- 第6章 ツリー構造
- 第7章 マップとハッシュ
- 第8章 浮動小数点型と数値計算
- 第9章 文字列検索
- 第10章 バックトラック法と幅優先探索
- 第11章 動的計画法
- 第12章 アルゴリズムで遊ぶ ~ テンパズルに挑戦
- 第13章 グラフ構造
第2版では「グラフ構造」が追加されました。
先に上げた「アルゴリズムを、はじめよう」や、 「基本情報技術者 大滝みや子先生のかんたんアルゴリズム解法」の 次に読む本としておすすめできます。
アルゴリズムイントロダクション 第3版 総合版 (世界標準MIT教科書)
中級者以上向け。MIT教科書として書かれた本。 アルゴリズム本の定番本でもあります。 本格的にきっちりとアルゴリズムを学びたい人向けです。
ページ数も1000ページ以上ありますので、これは辞書レベルです。 ページ相応にアルゴリズム・データ構造が多数紹介されて、 練習問題も多数あります。
初心者・入門者がいきなり読んでも挫折するのがオチですから ある程度の実力がついてから挑んでください。
プログラマ脳を鍛える数学パズル シンプルで高速なコードが書けるようになる70問
パズルを解くことを通して、アルゴリズムを学ぶ本です。 パズルが70問あり、ほとんどがRuby、たまにJavaScriptのサンプルコードとなっています。
アルゴリズムの基礎的知識があることが前提となっていますので、 初心者・入門者が読んでも難しいと思います。 「再帰」や「深さ優先検索」、「幅優先検索」といったアルゴリズムが 特に説明もなく普通に使われています。 そのあたりの知識があると非常に読み応えがあって楽しめる本です。
パズル好きの方には特におすすめできる本です。
プログラミングコンテスト攻略のためのアルゴリズムとデータ構造
プログラミングコンテスト攻略のための「アルゴリズム」と「データ構造」について かかれた本です。
プログラミングコンテスト用だけでなく、 通常の「アルゴリズム」、「データ構造」用の本としても十分役に立つ本です。
数学的な考え方が多数出てきますが、 図が多くありますのでじっくりと読めばわかる内容となっています。 480ページとボリュームもありますので読み応えのある本です。
全くのアルゴリズム初心者にはおすすめしませんが、 2冊目以降の本としてはおすすめできます。
他のプログラミングコンテスト本では難しいという人は 先にこの本を読んだほうがいいと思います。
The Art of Computer Programming Volume 1 Fundamental Algorithms Third Edition 日本語版
中級者・上級者向け。
地上最強のプログラマーとして有名なクヌース先生の本です。 『The Art of Computer Programming』シリーズの最初の1冊。
アルゴリズムのバイブルとして有名な本ですが、 内容も難しいです。アルゴリズム本の「ラスボス」です。
世界的に有名なスーパープログラマーと言われる人の多くが、 この『The Art of Computer Programming』を多大な影響を受けた本として 上げています。
数学的な専門知識も容赦なく出てきますのでそれなりに覚悟が必要な本です。 本気でスーパープログラマーを目指している人にだけおすすめします。