はてなが輪講で読む教科書『Introduction to Algorithms』の紹介

社内エンジニアの間に、計算機科学をマジメにやろうという機運が高まっています。それを受けはてな社内で計算機科学に関する教科書の輪講をやろうという話になりました。という訳でまずはアルゴリズムの教科書「アルゴリズムイントロダクション 第1巻 改訂2版 (1)」を輪講してみることにします。

id:motemenやid:naoyaの日記などで告知されていましたが、はてなのスタッフが中心になってアルゴリズムの教科書の輪講を行うことになったようです(外部の参加者も募集していたようですが現在は締切り済み)。
教科書になっている『アルゴリズム・イントロダクション』は翻訳で、原書は↓これです。翻訳は3分冊になってますが、原書は分厚い1冊です。ハードカバーとペーパーバッグがあるので好きな方を選ぶとよいと思う。

Introduction to Algorithms, Second Edition

Introduction to Algorithms, Second Edition

Introduction to Algorithms, Second Edition

Introduction to Algorithms, Second Edition

この本は定評のある教科書で、大学院のときなどの読んだ人がたくさんいるのではないかと思います。私も全体の半分くらいを学部4年からM2くらいにかけて読みました。ランダウのO記法とかの数学的な基礎知識から始まって各種リストやツリー、ヒープなどのデータ構造、ソート、サーチとかはもとより、最短経路や巡回パスなどなどが図と擬似コードで幅広く解説されています。NP-Completeness(たしか36章)についてはこの本で勉強しました。以前にこの日記でも一度紹介したことがあります。

この本私もほとんど座右の書にしてます。私はCLRと呼んでます。

このときにさらっと流してしまったけれど、このCLRという略語は(私が勝手に使ってるんだけどまあ一般的なのではないかと思う)、3人の著者、Cormen, Leiserson, Rivest の頭文字を取ったものですが、このうちのRはみなさんが日常的にお使いのRSAのRと同じ人です。(ちなみにRSAはRivest, Shamir, Adleman)
↑で引用した前の記事にも書きましたが、現在はこの本の全文がこちらで電子的に入手できます。
まあいろいろ書いてきたけど、とにかくオススメできる内容です。私も結局読み切ってるわけじゃないので、京都に近かったらぜひ参加したかったのですが。