跳到正文

Data Structures

数据结构与算法

以 C/C++ 手写实现为主,关注真实内存布局与代价,而不是纸上复杂度。

12 / 12 已发布 12 篇

基础 4 节

01

复杂度分析与大 O

  • 渐进记号与常数被忽略的代价
  • 最好/最坏/摊还分析
  • 空间与时间的互换
  • 用实测验证复杂度
  1. 复杂度分析与大 O
02

线性表:数组与链表

  • 顺序表与动态扩容策略
  • 单链表/双链表/循环链表实现
  • 删除与查找的指针操作
  • 什么时候链表其实更慢
  1. 线性表:数组与链表
03

栈与队列

  • 数组栈与链表栈
  • 循环队列与双端队列
  • 单调栈/单调队列
  • 表达式求值与括号匹配
  1. 栈与队列
04

串与模式匹配

  • 字符串存储与比较代价
  • KMP 与 next 数组推导
  • Rabin-Karp 滚动哈希
  • 多模式匹配概览
  1. 串与模式匹配

进阶 5 节

05

树:二叉树、BST 与平衡

  • 三种遍历与递归/非递归
  • BST 的退化与旋转
  • AVL 与红黑树取舍
  • B 树/B+ 树与磁盘结构
  1. 树:二叉树、BST 与堆
06

堆与优先队列

  • 数组实现二叉堆
  • 建堆为何是 O(n)
  • Top-K 与合并 K 路
  • 配对堆/二项堆概览
  1. 堆与优先队列
07

哈希表

  • 哈希函数与分布质量
  • 开放寻址与链地址法
  • 负载因子与再哈希
  • 布隆过滤器
  1. 哈希表与冲突处理
08

图的存储与遍历

  • 邻接矩阵/邻接表/前向星
  • BFS 与 DFS 的非递归写法
  • 拓扑排序与环检测
  • 连通分量与二分图判定
  1. 图的存储与遍历
09

排序算法全族

  • 插入/希尔/选择/冒泡的适用边界
  • 归并与快排:稳定性与最坏情况
  • 堆排序与原地 O(1) 空间
  • 基数/计数排序与内省排序
  1. 排序算法全族

高级 3 节

10

动态规划

  • 状态定义与转移推导
  • 背包、区间、树形 DP
  • 滚动数组与状态压缩
  • 记忆化与递推互换
  1. 动态规划
11

贪心、分治与回溯

  • 贪心正确性如何证明
  • 分治与主定理
  • 回溯剪枝与全排列类问题
  • 双向搜索与迭代加深
  1. 贪心、分治与回溯
12

进阶结构专题

  • 并查集与路径压缩
  • 字典树与后缀数组
  • 树状数组与线段树
  • 跳表与 LRU 缓存
  1. 进阶结构专题