- 第1章 ソート
- 大量のデータを整理する
- バブルソート
- クイックソート
- マージソート
- ソートの「安定性」
- そのほかのソート方法
- 最適なソートは?
- 第2章 サーチ
- リニアサーチ
- バイナリサーチ
- 数値配列以外への応用
- 超整理法?
- 第3章 リスト
- データ構造?
- いくつあるかわからないデータ
- リスト登場
- リストのサーチ
- 応用例――自己組織化探索
- 第4章 スタック&キュー
- スタックとは?
- スタックの実装
- リストとスタック
- スタックの利用例1――カッコの対応
- スタック利用例2――簡単な数式の計算
- キューとは?
- キューとリスト
- キューの利用例
- 第5章 再帰呼び出し
- 再帰呼び出しとは
- 再帰のしくみ
- 最大公約数を求める
- 開き直り数
|
- 第6章 ツリー構造
- 樹形図のように枝分かれ
- ツリー構造
- 2分木(binary tree)
- 多数の子ノードをもつツリー
- 第7章 マップとハッシュ
- キーから値をサーチする
- 2分木を使ったツリーマップ
- スマートなハッシュマップ
- ハッシュ値の決め方
- 第8章 浮動小数点型と数値計算
- たかがfloat,されどfloat
- 誤差は油断大敵
- 複雑な方程式を解く
- 第9章 文字列検索
- 文字列を検索する
- 最も単純な文字列検索
- 検索のムダを省く(KMP法)
- 現実的に優れた方法(BM法)
- 文字列以外への応用
- 第10章 バックトラック法と幅優先探索
- 開き直って試行錯誤
- バックトラック法
- 堂々めぐりと遠回り
- 幅優先探索法
- 第11章 動的計画法
- 分割統治法(トップダウン的な問題解決)
- コイン問題の解法
- ナップザック問題を動的計画法で解く
- 動的計画法に適している問題
- バックトラック法と動的計画法の比較
- 第12章 アルゴリズムで遊ぶ〜テンパズルに挑戦
- 4つの数字で10を作る
- どのように解くか方針を立てる
- 逆ポーランド記法について
- 逆ポーランド記法を用いたアプローチ
- まとめ
|