『アルゴリズム・サイエンス:入口からの超入門』

だいぶ前に読み始めたのだが、練習問題を全部解いたりしていたら読み終えるのにかなり時間がかかってしまった。
私は情報系の学部ではなかったため、アルゴリズムについては教科書・参考書を2、3冊*1しか読んだことが無い。なのであまりはっきりとは言えないのだが、本書は一般的なアルゴリズムの入門書とはかなり毛色が違っているように思う。
本書にはリスト、ツリー、スタックやキューといったデータ構造に関する記述は無いが、代わりに浮動小数点の内部形式やプログラムの直線化、再帰や乱数を利用したアルゴリズムなど、他であまり見かけない(と思われる)テーマが収録されている。これらは他の教科書で初歩的なアルゴリズムを勉強した人にも目新しいのではなかろうか*2
バラエティに富む内容のせいかもしれないが、章ごとの難易度もかなり幅があるように感じた。なので立ち読みするにしても最初の方だけ読んで判断しない方が良い。個人的には前半は少々易しすぎる気がしたが、後半にはじっくり考えなければならない複雑な話題もあった。

あと、本書には誤植や誤記が結構あるので、適当に読み飛ばさずに自分で確認しながら読み進めた方が良いと思う。

*1:『Cプログラマのためのアルゴリズムとデータ構造(近藤嘉雪 著)』『アルゴリズムとデータ構造(石畑清 著)』

*2:裏を返せば上に挙げたようなデータ構造については他の参考書を読まねばならないことになるが