あらすじ
★この本を買わずして何を買う!!★
競技プログラミング経験が豊富な著者が、「アルゴリズムを自分の道具としたい」という読者に向けて執筆。入門書を標榜しながら、AtCoderの例題、C++のコードが充実。入門書であり実践書でもある、生涯役立つテキストを目指した。
【推薦の言葉】
プログラムが「書ける」ことと、効率の良い結果を得ることには大分ギャップがある。本書は、どのようにすれば効率のよい結果が得られるか? すなわちどのようなアルゴリズムを採用すればよいか? という点に対して、幅広くかつ明快に解説している。
また本書は、アルゴリズム初心者に対して、アルゴリズムへの興味を惹かれるように記述されている。アルゴリズム上級者への初めの一歩には最適であろう。
――河原林健一(国立情報学研究所副所長)
【全体を通して、アルゴリズムの設計技法を重視した構成】
まず、1、2章でアルゴリズムと計算量について概観します。そして、3~7章が、早くも本書のメインパートといえる部分であり、「アルゴリズムの設計技法」について詳しく解説します。これらの設計技法に関する話題は、多くの書籍では、最後の方で簡単に説明しています。しかし本書は、現実世界の問題を解決するための実践的なアルゴリズム設計技法の鍛錬を目指しています。そこで、アルゴリズム設計技法について前半で詳しく解説する構成としました。そして、これらの設計技法が後半の章でも随所に使われていくことを示していきます。
その後、8~11章では、設計したアルゴリズムを効果的に実現するうえで重要となるデータ構造を解説します。データ構造について学ぶことで、アルゴリズムの計算量を改善したり、また、C++やPythonなどで提供されている標準ライブラリの仕組みを理解して、それらを有効に活用したりすることができるようになります。
そしていったん、12章でソートアルゴリズムについての話題を挟んだ後に、13~16章でグラフアルゴリズムについて解説します。グラフは、非常に強力な数理科学的ツールです。多くの問題は、グラフに関する問題として定式化することで、見通しよく扱うことができるようになります。また、グラフアルゴリズムを設計するとき、3~7章で学ぶ設計技法や、8~11章で学ぶデータ構造が随所で活躍します。
最後に、17章で PとNPに関する話題を解説し、世の中には「効率的に解くアルゴリズムを設計することができそうにない難問」が多数あることを見ます。18章で、これらの難問に取り組むための方法論をまとめます。ここでも、動的計画法 (5章) や貪欲法 (7章) といった設計技法が活躍します。
感情タグBEST3
アルゴリズム網羅系入門書
この本はいわゆるアルゴリズム網羅系入門書であると感じました。理系の人ならチャートやフォーカスゴールドといえばわかるでしょうか。右も左もわからないアルゴリズム、プログラミング初心者がまず手に取る本として最適であると感じましたが、一方で網羅的すぎて後半はアルゴリズムやコーディングに不慣れな人にとってはキャパオーバーになってなかなか理解できないのではないかと感じました。ですが、そのような場合は読み飛ばしてしまって、数ヶ月、数年経ってから戻ってきて読むと言う使い方もできると思います。
Posted by ブクログ
動的計画法やグラフアルゴリズムを丁寧に誰でもわかるように平易な文章と数式を混ぜ合わせて表現している部分が素敵でした。今は途中の演習問題をすっ飛ばして読んだだけなのでこれからAtcoderなどの演習問題を通して自分の血と肉にしていきたいと思います!名著。
Posted by ブクログ
アルゴリズムイントロダクションとかのガチ系ではない、入門系としてはこれ一冊で十分かなと言う感じ。けんちょんさんの、数式とかきちんと使うんだけど表現が優しくてスッと入ってくる感じはホントすごい。
特に、広くて捉えにくい貪欲法とか動的計画法のところのイメージの持たせ方が好きだったな。
星5の定義通り、何度も繰り返し読む本。
Posted by ブクログ
アルゴリズムをまとめた本
全体概要を学ぶならいい感じ
アルゴリズムとは、計算量、全探索、再帰・分割統治法、動的計画法
二分探索、貪欲法、配列・リスト・ハッシュテーブル、スタック・キュー
グラフ・木、union-find、ソート、グラフ探索、最短路、最小全域木
ネットワークフロー、PとNP
Posted by ブクログ
競プロしていたので、勉強のために読んだ本。アルゴリズムの勉強するには非常に良い本かと。いつも全探索ではなく、再帰法使うなど工夫しながら書けるようになるにはどんどんアウトプットで積み重ねしなければ。