CS基礎:計算量とデータ構造

計算量の共通言語を身につけ、データ構造の設計選択肢を理論と実務で理解する。

CS基礎:計算量とデータ構造

計算量の共通言語を身につけ、データ構造の設計選択肢を理論と実務で理解する。

目次

  1. プロローグ ── 計算量という「設計言語」を身につける ![計算量の全体像 — O(1)からO(n²)までのスケール感](images/ch01_big_o.png)
  2. 配列とハッシュテーブル ── 最も使うデータ構造の内部構造 ![配列とハッシュテーブル — 動的配列・衝突解決・負荷率](images/ch02_array_hash.png)
  3. 連結リスト・スタック・キュー ── 線形データ構造の使い分け ![線形データ構造 — 連結リスト・スタック・キュー](images/ch03_list_stack_queue.png)
  4. 木構造 ── BST・AVL・Red-Black Tree ![木構造 — BST・AVL・Red-Black Tree・回転操作](images/ch04_trees.png)
  5. ヒープと優先度付きキュー ── 「最大/最小を O(1) で取る」 ![ヒープと優先度付きキュー — Min-Heap・Top-K・メディアン](images/ch05_heap.png)
  6. グラフの表現とトラバーサル ── BFS / DFS / トポロジカルソート ![グラフアルゴリズム — BFS・DFS・トポロジカルソート・Union-Find](images/ch06_graph.png)
  7. ソートアルゴリズム ── 比較ソートの下限と実用ソートの戦略 ![ソートアルゴリズム — QuickSort・MergeSort・Timsort・安定性](images/ch07_sorting.png)
  8. 二分探索とその応用 ── 「ソート済み」を見たら反射的に ![二分探索パターン — lower_bound・回転配列・答えの空間探索](images/ch08_binary_search.png)
  9. 動的計画法 ── 「同じ計算を二度しない」 ![動的計画法 — 状態定義・遷移式・空間最適化](images/ch09_dp.png)
  10. B-Tree / LSM-Tree / Skip List ── データベースの内部構造 ![DB内部構造 — B-Tree・LSM-Tree・Skip List](images/ch10_db_internals.png)
  11. 確率的データ構造 ── Bloom Filter・HyperLogLog・Count-Min Sketch ![確率的データ構造 — Bloom Filter・HyperLogLog・Count-Min Sketch](images/ch11_probabilistic.png)
  12. エピローグ ── データ構造の選択は設計判断である ![データ構造選択チートシート](images/ch12_epilogue_ds.png)