ふわふわの基礎にロードローラー。「定本 Cプログラマのためのアルゴリズムとデータ構造」やりおえた。

ふわふわの基礎にロードローラー。「定本 Cプログラマのためのアルゴリズムとデータ構造」やりおえた。

こんにちは、素養。

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

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

いろいろな想いがあり、いろいろな実装がある

時間とリソースをはかりに乗せ、望まれるバランスにより近い実装を行うのがよりよいプログラミングである。多種多様な条件に柔軟に対応していくためには、多くの選択肢を知らなければならない。

世の中にはさまざまなメリットデメリットを持つ、データ構造やアルゴリズムがある。それらの世界で視野を広げるための大切な第一歩となる、基本的な知識を与えてくれるよい本だった。

パッと見たときのコードの多さはC由来

純粋にアルゴリズムだけを知りたいなら、ほかの本がいいかもと思わないでもない。あるいは参考だけにして他の言語で書きなおすとか。

しかし使用リソースを最小限に整列や問題解決をやっていくのも、また大切な技術だと思うので、これはやはりCで読んでCで書いてよかったなという感じがする。

そもそもいきなりCやりだしたのも、この本はCで読んだ方がよいのでは?とぼんやり思ったからだった。

mmmpa.hatenablog.com

なにかがなんとなくわかるようになる

各種言語でなんでこんな仕組みなの?みたいに疑問に思っていたところがなんとなく察せられるようになった気がする。

特にアルゴリズムよりもデータ構造のメリットデメリット由来なんだろうなというのが多い。

正規表現で学ぶ有限性オートマトンがよかった

オートマトンとかステートマシンとかはspreeのコード読んでたときにふんわりと知った。

ふんわり知ることができたので、また後で勉強しようと本だけ買ってある状態で置いてあったんだけど、この本読んでたらいきなり出てきて興奮した上に、正規表現という割と身近でややこしいものの実装を通して、その全体像がうっすら見えた気がする。

というわけで次はオートマトンの数学っぽい本を読みます。

いろいろなアルゴリズム最高

最後の部になる第6部では

について解説されているが、とくにメモリ管理アルゴリズムで解説されている断片化と詰め直し、キャッシュで解説されているバッファリングとLRU法は、そのまま他の実装で有効活用できそうでよかった。

断片化と詰め直しはスケジューリングアプリケーションを作成してるときに手探りで実装したけど、整理されたやりかたを示されるとなるほど~となってよかった。

つぎの本

オートマトンの本はまぁ読むとして、途中でアルゴリズムクイックリファレンスをぱらぱらと読んでたら同じ実装でもびみょうにやり方がちがったりしたので、そっちもちゃんと読みたい、じゃなくてやりたいなという感じ。

アルゴリズムクイックリファレンス

アルゴリズムクイックリファレンス