跳转至

Ch14 数据结构与算法 · 思维导图 (Mermaid)


一 · 章节主入口

🌳 Ch14 章 知识图谱
├─ §00 基础
│  └─ 复杂度
│  └─ 递归
│  └─ 分治
├─ §01 数组哈希
│  └─ 动态数组
│  └─ 哈希表
│  └─ 滑动窗口
├─ §02 链表栈队
│  └─ 链表
│  └─ 栈
│  └─ 队列
├─ §03 树
│  └─ 二叉树
│  └─ BST
│  └─ 平衡树
│  └─ 堆
├─ §04 图
│  └─ BFS
│  └─ DFS
│  └─ 最短路
│  └─ MST
├─ §05 排序搜索
│  └─ 比较排序
│  └─ 线性排序
│  └─ 二分

二 · 复杂度速查

graph LR
    A[算法] --> B[时间 T_n]
    A --> C[空间 S_n]
    B --> B1[O_1 常数]
    B --> B2[O_log n 对数]
    B --> B3[O_n 线性]
    B --> B4[O_n log n]
    B --> B5[O_n²]
    B --> B6[O_2ⁿ]

三 · §00 基础子图

🌳 Ch14 章 知识图谱
├─ 复杂度
│  └─ O/Ω/Θ
│  └─ 主定理
│  └─ 平摊
├─ 递归
│  └─ 基例
│  └─ 递归式
│  └─ 尾递归
├─ 分治
│  └─ 归并
│  └─ 快排
│  └─ 二分

四 · §01 数组哈希子图

🌳 Ch14 章 知识图谱
├─ 数组
│  └─ 静态
│  └─ 动态
├─ 双指针
│  └─ 对撞
│  └─ 快慢
├─ 滑动窗口
│  └─ 固定
│  └─ 变长
├─ 哈希
│  └─ 链地址
│  └─ 开放定址
│  └─ 一致性哈希

五 · §02 链表栈队子图

🌳 Ch14 章 知识图谱
├─ 链表
│  └─ 单链
│  └─ 双链
│  └─ 循环
├─ 栈
│  └─ LIFO
│  └─ 单调栈
│  └─ 表达式
├─ 队列
│  └─ FIFO
│  └─ 优先队列
│  └─ 双端
├─ 应用
│  └─ LRU
│  └─ BFS
│  └─ DFS

六 · §03 树子图

🌳 Ch14 章 知识图谱
├─ 二叉树
│  └─ 遍历
│  └─ 重建
├─ BST
│  └─ 查找
│  └─ 插入
│  └─ 删除
├─ 平衡
│  └─ AVL
│  └─ 红黑
│  └─ 伸展
├─ 字典树
│  └─ Trie
├─ 堆
│  └─ 最小堆
│  └─ 最大堆
│  └─ 二项堆

七 · §04 图子图

🌳 Ch14 章 知识图谱
├─ 遍历
│  └─ BFS
│  └─ DFS
│  └─ 拓扑
├─ 最短路
│  └─ Dijkstra
│  └─ Bellman-Ford
│  └─ Floyd
├─ MST
│  └─ Prim
│  └─ Kruskal
├─ Union-Find
│  └─ 路径压缩
│  └─ 按秩合并
├─ 应用
│  └─ GNN
│  └─ SLAM
│  └─ 路由

八 · §05 排序搜索子图

🌳 Ch14 章 知识图谱
├─ 比较排序
│  └─ 冒泡
│  └─ 插入
│  └─ 选择
│  └─ 快排
│  └─ 归并
│  └─ 堆排
├─ 线性排序
│  └─ 计数
│  └─ 基数
│  └─ 桶
├─ 自适应
│  └─ Tim
│  └─ 内省
├─ 搜索
│  └─ 顺序
│  └─ 二分
│  └─ 哈希

九 · 跨章桥接

graph TB
    C12[Ch12 GNN] --> T1
    C13[Ch13 OS] --> T2
    C07[Ch07 Transformer] --> T3
    C11[Ch11 SLAM] --> T4
    C05[Ch05 贝叶斯] --> T5

    T1[Ch14 §04 图算法 BFS/DFS] --> FUSE{AI 系统}
    T2[Ch14 §02 LRU] --> FUSE
    T3[Ch14 §03 Trie/KD-Tree] --> FUSE
    T4[Ch14 §04 Dijkstra 路径] --> FUSE
    T5[Ch14 §03 堆] --> FUSE

    FUSE --> APP[GNN/SLAM/LLM 加速]

十 · 演进时间线

timeline
    1960 : Quick Sort (Hoare)
    1962 : AVL Tree
    1964 : Heap Sort
    1968 : Dijkstra / BFS / DFS
    1972 : Union-Find
    1975 : Red-Black Tree
    1976 : Bellman-Ford
    1983 : Tarjan SCC
    1993 : Sleator-Tarjan Splay
    2002 : Tim Sort (Tim Peters)
    2004 : MapReduce
    2014 : Spark
    2017 : Transformer
    2020 : Flash Attention
    2023 : PagedAttention (vLLM)

十一 · 数据结构 vs 操作复杂度

操作 数组 链表 哈希 BST 堆
访问第 k \(O(1)\) \(O(n)\) - \(O(\log n)\) \(O(n)\)
查找 \(O(n)\) \(O(n)\) \(O(1)\) \(O(\log n)\) \(O(n)\)
插入 \(O(n)\) \(O(1)\) \(O(1)\) \(O(\log n)\) \(O(\log n)\)
删除 \(O(n)\) \(O(1)\) \(O(1)\) \(O(\log n)\) \(O(\log n)\)
取最小 \(O(n)\) \(O(n)\) \(O(n)\) \(O(\log n)\) \(O(1)\)

十二 · 排序对比

算法 最优 平均 最坏 空间 稳定
冒泡 \(O(n)\) \(O(n^2)\) \(O(n^2)\) \(O(1)\) ✓
插入 \(O(n)\) \(O(n^2)\) \(O(n^2)\) \(O(1)\) ✓
选择 \(O(n^2)\) \(O(n^2)\) \(O(n^2)\) \(O(1)\) ✗
快排 \(O(n \log n)\) \(O(n \log n)\) \(O(n^2)\) \(O(\log n)\) ✗
归并 \(O(n \log n)\) \(O(n \log n)\) \(O(n \log n)\) \(O(n)\) ✓
堆排 \(O(n \log n)\) \(O(n \log n)\) \(O(n \log n)\) \(O(1)\) ✗
计数 \(O(n+k)\) \(O(n+k)\) \(O(n+k)\) \(O(k)\) ✓
Tim \(O(n)\) \(O(n \log n)\) \(O(n \log n)\) \(O(n)\) ✓

十三 · 图算法对比

算法 适用 时间 空间
BFS 无权最短路 \(O(V+E)\) \(O(V)\)
DFS 拓扑 / 强连通 \(O(V+E)\) \(O(V)\)
Dijkstra 加权非负 \(O((V+E) \log V)\) \(O(V)\)
Bellman-Ford 有负权 \(O(VE)\) \(O(V)\)
Floyd 全对最短 \(O(V^3)\) \(O(V^2)\)
Prim MST \(O(E \log V)\) \(O(V)\)
Kruskal MST \(O(E \log E)\) \(O(V)\)

这张导图覆盖 Ch14 全章。建议: 先背章节主入口 → 按节背子图 → 排序 / 图算法对比表 → 演进时间线。