タグ「CS」が付けられているもの

「なっとく!アルゴリズム」を読んだ

「なっとく!アルゴリズム」を読んだ。

イラストを多く使って分かりやすくしているのがウリのアルゴリズム本とのこと。 しかし、読んでみるとなんとなくわかりづらかった。何がわかりづらいのか考えてみると、おそらく定義が無いか曖昧か後に出てくるのが原因だろうと思う。問題点の説明はできているので、問題の共有は読者との間にできていると思うが、アルゴリズムの定義がやや曖昧で、なるほどと納得するのに時間が掛かった。また、Pythonでアルゴリズムを表現しているが、全体のコードが後に出てくるため、全体を把握してから読み進めるというよりは、小さな部品から初めて完成させるというボトムアップ型の作りになっているのも関係しているかもしれない。

ただ内容については、「初めてのコンピュータサイエンス」に記載のなかったダイクストラ法等もあって幅広いアルゴリズムについて触れている。そこに惹かれたのが、本書を読んだ理由の一つでもある。

以下に、言及のあったアルゴリズムを挙げる。キーワードの紹介だけのものも含む。

  • 二分探索
  • 分割統治
  • クイックソート
  • 幅優先探索(グラフ)
    • ダイクストラ法 : 正の重みを考慮した重み付きグラフの最短経路に利用
    • ベルマンフォード法 : 負の重みを考慮した重み付きグラフの最短経路に利用
  • 貪欲法
  • 動的計画法
  • k近傍法
  • B 木
  • 赤黒木
  • スプレー木
  • 転置インデックス
  • フーリエ変換
  • ブルームフィルタ
  • HyperLogLog
  • Simhash

「初めてのコンピュータサイエンス」を読んだ

「初めてのコンピュータサイエンス」を読んだ。 最近、Googleの入社エントリが話題になったが、やはりコンピュータサイエンスの基礎はきちんとしておかねばならないと再認識する良いきっかけになった。 大学の講義の教科書として使っていた本を読もうかと思ったが、手元になかったので図書館で何か良いものはないかと探して選んだのがこの本。 Pythonを使って説明する内容となっているためにPythonの説明から始まるが、アルゴリズムの説明などは多言語にも応用の利くように記載されていてPython以外の言語を書く人に対しても有効な記載ぶりである。 大学の講義を思い出すような内容であったが、プログラミングスタイルなどにも触れてられていて、大学の講義にはなかった内容もあって有意義であった。

今後しばらくはコンピュータサイエンス系の本を中心に読もうと思う。 次はアルゴリズム系として以下の本を読む予定。