石田保輝のレビュー一覧
-
Posted by ブクログ
定義とソースコード、そして数字の羅列の結果を見せるタイプの解説とは異なり、すべてのアルゴリズムが図で説明されている。おなじみのソートアルゴリズムにヒープ、探索木などのデータ構造の探索やグラフの探索、そしてセキュリティのアルゴリズムを絵で解説している。セキュリティのアルゴリズムは情報処理技術者試験の参考書と対して変わらない程度の説明であったが、ソート、探索木の解説は1手順ずつしっかりと説明されていた。とくに探索木は、データの追加、削除、検索それぞれを1手順ずつ見ることができ、何が起きているのかを見ることができたのは非常に良かった。また、探索時間や弱点にもちゃんと言及しているのも良かった。
-
Posted by ブクログ
#アルゴリズム図鑑 絵で見てわかる26のアルゴリズム
フリーランスエンジニアの石田保輝 氏、京大准教授の宮崎修一 氏の著書です。
石田氏が開発したエンジニア学習アプリ「アルゴリズム図鑑」の書籍版になります。
図での説明がわかりやすいアルゴリズムの入門書です。
【本書で学べること・考えること】
・アルゴリズムの概要と評価基準
・データ構造
- リスト、配列、スタック、キュー、ハッシュテーブル、ヒープ、二分探索木
・ソート
- バブル、選択、挿入、ヒープ、マージ、クイック
・配列の探索
- 線形探索、二分探索
・グラフ探索
- 幅優先、深さ優先、ベルマン・フォード法、ダイクストラ法、A*
・セキュリティ
- ハッシュ関数、共通鍵暗号、公開鍵暗号、ハイブリッド暗号、ディフィ・ヘルマン鍵交換、メッセージ認証コード、デジタル署名、デジタル証明書
・クラスタリング - k-means法
・その他
- ユークリッドの互除法、素数判定法、フェルマーテスト、ページランク、ハノイの塔
読んでみての感想です。
図が見やすく、理解を助けてくれます。
プログラミングの練習問題として出てくるアルゴリズムは、だいたい網羅されていると思います。
アルゴリズムを知った上で、プログラムの中身をみると理解も深まると思います。
ハッシュテーブルがなぜ、ハッシュという名前なのか理解できました。
入門書としては良書だと思います。 -
Posted by ブクログ
ネタバレアルゴリズム図鑑
### サマリ
#### 動機
Rubyの勉強をしている中で、アルゴリズムのパターンを知っておくと考えを整理するのに便利かもしれないと思い。まずは図が大きく説明の少ない入門書から。
#### 感想
- 配列などのデータ構造を、コスト面から考えたことはあまりなかったから新鮮だった
- 情報を整理するための基本的な方針がすでにまとまっているので、自分で一から考えるよりも学んでしまった方が早い部分が多そう
### 学んだこと
アルゴリズム
計算や作業を遂行するための手順
スタック
データを一列に並べて、新しく追加したデータから順番にアクセスするデータ構造(Last in First out)
キュー(待ち行列)
データを一列に並べて、一番古いデータから順番にアクセスする(First in First out)
ハッシュテーブル
ハッシュとデータの対になったデータ。ハッシュ関数を利用し、素早いアクセスを可能にする
2分探索木
ノードが最大2つの子を持ち、ノードより左側は全てノードより小さく、右側は全てノードより大きいように構成されている
コンピュータサイエンスにおけるグラフ
ノードと辺で表現されるもの。辺自体に値が付いている(電車の運賃表とか)ものや辺に方向があるものがある
データをやりとりする際の主な問題
- 盗聴
- 改ざん
- なりすまし
- 事後否認
共通鍵暗号方式
暗号化と復号に同じ鍵を使う方式。結局鍵も渡すことになるので、鍵自体を盗まれればデータも復号できてしまう問題がある。
公開鍵暗号方式
受信側が公開鍵と秘密鍵を作成し、公開鍵のみを送信側に渡す。送信側は公開鍵で暗号化を行い送信する。第三者は復号に必要な秘密鍵を盗めないので鍵配送問題が起きない。が、公開鍵自体の書き換えが行われてしまうと、盗聴は可能になってしまう。
デジタル署名
公開鍵暗号方式の逆(送信者側が鍵を発行し、手元の秘密鍵で暗号化し、受信側が公開鍵で開く)を行う。暗号としては意味をなさないが、作成者側に秘密鍵が残っているので、作成者だと保証することができる