参考書籍 アルゴリズムとデータ構造

このエントリーをはてなブックマークに追加

ここでは、アルゴリズムとデータ構造に関する参考書籍を紹介します。

以下のリストは、現在紹介している本の一覧で、出版日の新しいものほど、上に来るように並べています。
★は、その本を5段階で評価したもので、良書だと判断したものほど★の数が多くなります。

  1. 珠玉のプログラミング(★★★★★)
  2. 入門 データ構造とアルゴリズム(★★★)
  3. アルゴリズムを、はじめよう(★★★★★)
  4. プログラミングの宝箱 アルゴリズムとデータ構造 第2版(★★★★)
  5. 定本 Javaプログラマのためのアルゴリズムとデータ構造(★★★★★)
  6. 再帰の技法(★★★)
  7. プログラミングに活かすデータ構造とアルゴリズムの基礎知識(★★★★★)
  8. 定本 Cプログラマのためのアルゴリズムとデータ構造(★★★★★)
  9. C言語による最新アルゴリズム事典(★★★★)

珠玉のプログラミング

2015年度 お勧め書籍10冊
2014年度 お勧め書籍14冊
2013年度 お勧め書籍13冊
2012年度 お勧め書籍12冊
2011年度 お勧め書籍11冊

レベル 中級〜
5段階評価 ★★★★★
出版日 2014年2月
ISBN 978-4621066072
新版の有無 なし

問題を解決するために、アルゴリズムとデータ構造を活用する能力を養う本です。 特に、少ないメモリで大きな問題を解く方法や、高い実行効率を得る方法についての話題が豊富です。

扱っているアルゴリズムとデータ構造は、他の入門書でも大抵取り上げられているようなものばかりです。 逆に、いちいちどんなアルゴリズム(データ構造)なのかは説明されていないので、 他の入門書で理解してから読むのが良いでしょう。 (できれば、現実のプログラミング作業の中で、メモリや処理効率で苦労した経験があるとなお良いです)

プログラム例は、現実のプログラミング言語ではなく、疑似コードで示されています。 慣れていないと分かりにくく感じるかも知れませんが、短いコードが多いですし、それほど難しくはないと思います。

以前は、別の出版社から発刊されていましたが、技術書の取り扱いを終了したため、新たな出版社に引き継がれました。 内容に変更はありません。

入門 データ構造とアルゴリズム

レベル 初級〜(初心者にはやや厳しいか)
5段階評価 ★★★
出版日 2013年8月
ISBN 978-4873116341
新版の有無 なし

豊富な練習問題が特徴的な入門書。

インドの著者によるアルゴリズムとデータ構造の入門書です。 学生の学習に役に立つように、基礎的な理論を簡潔に示した後は、ひたすら問題に取り組むという構成になっています。 練習問題の量は、他のどの本と比べても群を抜いて多く、理論解説と問題は半々ぐらいの割合です。

訳者の方があとがきにも書いているように、他の本であれば本文中に書いているような事項が、 練習問題の問題文だとか、解答の説明の中だとかに埋もれてしまっており、 学生のように1つ1つ取り組んでいく姿勢でいないと、価値が失われてしまうでしょう。 少なくとも、辞書的に参照するような使い方はしづらいかと思われます。

ただ、練習問題までしっかり見ていくと、計算量を改善する方法や、別の手法による解決策などにも触れており、 入門書としては、かなり深入りしている印象があります。

アルゴリズムを、はじめよう

2016年度 お勧め書籍10冊

レベル 入門
5段階評価 ★★★★★
出版日 2012年5月
ISBN 978-4844332015
新版の有無 なし

アルゴリズム学習の導入に。

プログラミング言語による実装例は登場せず、擬似的なコードを示す形ですが、 豊富な絵や図、フローチャートによる解説の方がメインになっており、アルゴリズムの動きがイメージしやすくなっています。 2色刷の図表は見やすく、取っつきやすいのではないかと思います。

扱っているアルゴリズムは、有名かつ基礎的なものに限られており、珍しいものはありません。 また、データ構造については扱っていません(配列があるぐらい)。

導入用としては良書だと思いますが、あくまで導入なので、 本格的にプログラミングを行う人は、引き続き、学習を進めた方がいいでしょう。

プログラミングの宝箱 アルゴリズムとデータ構造 第2版

レベル 初級
5段階評価 ★★★★
出版日 2011年3月
ISBN 978-4797363289
新版の有無 なし

アルゴリズムとデータ構造の基礎学習に。

アルゴリズムとデータ構造の学習が初めてという段階ではお勧めしませんが、中級者へのステップアップとして非常にお勧めできます。 実用上、ほとんど使われることがないようなアルゴリズム・データ構造には触れず、非常に実用性の高いものに絞られている点が好印象でした。

解説の分量は比較的控えめですが分かりやすく、サンプルプログラムは省略なく掲載されています。 サンプルはC言語で書かれたものを元に解説されている他、各章の末尾には、Java で書き直したものが掲載されています。
読みやすいコードになっていますので、是非、じっくりと読み解いて欲しいところです。

定本Javaプログラマのためのアルゴリズムとデータ構造

レベル 初級
5段階評価 ★★★★★
出版日 2011年1月
ISBN 978-4797362435
新版の有無 なし

長年親しまれている名著「定本 Cプログラマのためのアルゴリズムとデータ構造」(以下、C言語版)の Java版です。

扱っている内容は、ほとんどC言語版と同様です。 C言語を学習しておらず、Java を触ったことがある人なら、こちらで良いでしょう。

もちろん、C言語版と同じ著者によるものですから、丁寧な解説は健在です。 図解、サンプルプログラムともに充実しており、これ1冊で、アルゴリズムとデータ構造の基礎学習は十分だと言えます。

Java 6 を使っていますが、アルゴリズムとデータ構造の本ですから、標準で用意されているクラスを使わずに愚直なプログラムが書かれています。 比較的新しい機能の中では、オートボクシングや列挙型、拡張for文といったものが使われている程度です。 ジェネリクスも、少し触れられている箇所があるものの基本的には使われていません。 C++ や C# 辺りを知っていれば、Java に詳しくなくても十分に読める範囲だと思います。

再帰の技法

レベル 初級
5段階評価 ★★★
出版日 2006年11月
ISBN 978-4434085970
新版の有無 なし

タイトル通り、「再帰」処理だけに絞った解説書です。

定番の「階乗」「フィボナッチ数列」「ハノイの塔」などに始まり、 「クイックソート」や「二分探索木」などでの事例を取り上げています。
使用されているプログラミング言語は、C言語のみです。

難易度は高くなく、初級レベルの人を、再帰処理がうまく扱えるように導くという辺りだと思います。 高度なテクニックを期待している人にはお勧めはしません。

プログラミングに活かすデータ構造とアルゴリズムの基礎知識

レベル 初級
5段階評価 ★★★★★
出版日 2004年3月
ISBN 978-4756144522
新版の有無 なし

基本的なアルゴリズムとデータ構造を一通り抑えた、オーソドックスな入門書です。 使われている言語は、C言語です。

入門書とはいえ、理論や計算量についても詳細に解説されています。 文章も分かりやすく、丁寧な印象を受けました。
授業で使う教科書、あるいは副読本とするのに適した良書だと思います。

また、内挿探索やスキップリストなど、他の入門書では取り上げられることのない題材も幾つか含まれています。

なお、UNIX MAGAZINE という雑誌の連載記事を元にしたものですが、 特にこれといって UNIX色はないので、Windows しか知らない人でも、まったく躊躇する必要はありません。

定本 Cプログラマのためのアルゴリズムとデータ構造

2014年度 お勧め書籍14冊
2013年度 お勧め書籍13冊
2012年度 お勧め書籍12冊
2011年度 お勧め書籍11冊
2010年度 お勧め書籍10冊

レベル 初級
5段階評価 ★★★★★
出版日 1998年3月
ISBN 978-4797304954
新版の有無 なし

アルゴリズムとデータ構造の基礎学習に。

長年、親しまれている、アルゴリズムとデータ構造の初級者向けの良書です。 解説が懇切丁寧であり、じっくり腰を据えて読み解いていけば、確実に力の付く内容です。 図解、サンプルプログラムともに充実しています。 これ1冊で、アルゴリズムとデータ構造の基礎学習は十分でしょう。

初心者向けとはいえ、1つ1つの性能面も徹底的に解説されており、信頼できる内容です。

実用性の低いアルゴリズムも解説されていますが、あまり実用的でないとの旨の記述が少ない点はやや気になります。

なお、同著者による Java版もあります。 Javaプログラマはこちらをどうぞ。

C言語による最新アルゴリズム事典

レベル 全般
5段階評価 ★★★★
出版日 1991年3月
ISBN 978-4874084144
新版の有無 なし

アルゴリズム辞典の決定版。

タイトルに「最新」とありますが、出版年は 1991年です。 もう相当に古い本となりましたが、まだまだ色褪せない良書です。

非常に多くのアルゴリズムが、C言語のサンプルコードとともに掲載されています。 有名どころはほとんど網羅されており、有名でないものも多数あります。
ただし、データ構造に関しては掲載がありません。

各アルゴリズムは、性能面に関しても、簡潔ながらしっかりと記述されており、信頼性の高い内容になっています。 また、他のアルゴリズムへの参照も多く、比較検討がしやすくなっています。

更新履歴

'2017/5/19 目次部分に併記していた出版日は削除して、5段階評価の★を併記。
5段階評価を見直し。

'2017/5/10 アフィリエイトリンクのレイアウトを変更。購入先として honto を追加。

'2017/4/22 レイアウトを変更。Kindle版へのリンクを画像付きのものに変更。

'2016/12/23 2016年度・お勧め書籍10冊 へのリンクを追加。

'2015/9/19 「アルゴリズムを、はじめよう」を追加。

'2015/2/14 「入門 データ構造とアルゴリズム」を追加。

'2014/12/26 2014年度・お勧め書籍14冊 へのリンクを追加。

'2014/2/28 「珠玉のプログラミング」を再出版されたものへ置き換え。

'2013/13/22 2013年・お勧め書籍13冊 へのリンクを追加。

'2012/12/22 2012年・お勧め書籍12冊 へのリンクを追加。

'2012/7/25 「珠玉のプログラミング」「再帰の技法」を追加。

'2012/7/21 Googleブック検索の項目を削除。

'2012/5/26 「プログラミングに活かすデータ構造とアルゴリズムの基礎知識」を追加。

'2011/12/24 2011年お勧め書籍11冊 へのリンクを追加。

'2011/11/26 「定本Javaプログラマのためのアルゴリズムとデータ構造」を追加。

'2011/9/21 新規作成。



参考書籍のトップページへ

アルゴリズムとデータ構造編のトップページへ

Programming Place Plus のトップページへ