01基础
渐进记号、分治递归、循环不变式。大 O 是上界,不是精确步数;平均必须带分布前提。
问题→分治→主定理 / 展开
归并、快排、折半是大纲内的分治实例。主定理的三种情况点到「怎么套」即可,不要把证明全过程默进统考。
02排序与顺序统计
堆排序、快排、线性时间排序、选择问题。建堆 O(n)。快排在输入等概率/随机枢轴假设下平均 O(n log n),最坏 Θ(n²)。
比较排序最坏下界 Ω(n log n) 是决策树论证,408 点到即可。计数排序要求关键字可映射到有限整数区间;基数排序要求关键字可按位/域分解,且每一趟必须稳定。
稳定:直接插入、冒泡(相等不换)、归并稳定。堆排与默认快排通常不稳。不要写「插入家族都稳定」。
04高级设计与分析
进阶 / 超纲动态规划整章、包含活动选择在内的一般贪心证明、摊还分析(聚合、核算法、势能)不是 408 数据结构必答。
大纲内能留下的句子:哈夫曼、Dijkstra、Kruskal 是贪心实例,用它们自己的界,不要写「贪心都是 O(n log n)」。DP 在数据结构科目不单列。
05图算法
BFS/DFS、最小生成树、单源最短路、全源最短路。邻接表 O(V+E)。Dijkstra 边权非负。Floyd 允许负权禁负环。
Bellman-Ford 标准单源版本只能检出从源点可达的负权环。拓扑只对 DAG。
进阶 / 超纲差分约束、Johnson 算法、最大流与匹配,不要带进 408 数据结构答题。
章末自测
不要当必答。记「近似平衡、查找对数」即可。插入修复的全部情形标超纲。
不能。摊还分析不借助概率分布,把任意操作序列的总成本分摊到各次操作;单次最坏仍可很高,摊还界不能替代单次最坏界。它也不是「平均复杂度」。
不矛盾。演示图全非负,Dijkstra 适用。有负权换 Bellman-Ford 或 Floyd,并记住 BF 只检源点可达的负环。