本書籍の魅力はなんと言っても、各手法それぞれに深く突っ込んだ考察、解説がなされていることである。数学的な観点からの解析も丁寧で、一つ一つの事柄を「正確」に理解することができる。まさに科学である。
その分一般的な入門書に比べて難易度が若干高いのは否めないが、同テーマの入門書を読んでから本書籍に戻ってくることで本質的な知識を確実に身につけることができる。アルゴリズムに関する本格的な書籍は他にも候補があるが、そのいずれも、他の入門書で補えば読めるというレベルを超えているように思う。本書籍はちょうど入門と中級の間に挟まった大きな溝を埋めてくれることだろう。
例えば第2巻では前半で動的計画法 (Dynamic Programming) や貪欲アルゴリズム (Greedy Algorithm) についての章がある。自分が見た他の入門書数冊ではナップザック問題や最短経路問題などを題材に動的計画法や貪欲アルゴリズムの仕組みについて解説を行うものが多かったが、肝心の、なぜその問題を動的計画法や貪欲アルゴリズムで解くことができるかについての解説が弱かった。そのため、動的計画法のなんぞやは分かったものの、他の問題を出されたときに、それが動的計画法で解けるということに気付くことができないという何とも心許ない状態であった。本書では、その解説に"部分問題最適性"という概念を持ちだし、ある問題が部分問題の最適解で構成されるときに動的計画法や貪欲アルゴリズムが有効であると説く。そして部分問題最適性の見つけ方、その数学的証明の手法、部分問題最適性を証明できた後の漸化式の構成方法を解説した上で、その漸化式から再帰的なプログラムを実装し、それを動的計画法で置き換え、結果として計算量が抑えられることを示す。その一連の流れを明快に指示する。
入門書で各アルゴリズムのなんぞやを知り、本書籍でその知識を補強する。これがお薦めの読み方である。