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

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

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

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

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

  • 二分探索
  • 分割統治
  • クイックソート
  • 幅優先探索(グラフ)

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