快速选择第 k 大:else 分支该往哪边递归?
快速选择算法求第 k 大:else 分支应返回 quickSelect(a, i+1, right, k),去右半边继续找,k 保持不变。附划分过程图解、三种递归情况、选项逐项排除与 CSP 考点总结。
并查集的 find 那行空填什么?—— 路径压缩把长链压成一层
并查集 find 程序填空:横线填 find(parent[x]),即路径压缩。附压缩前后结构对比图(长链变星形)、选项逐项排除、按秩合并配套代码、复杂度表格与 CSP 考点总结。
最大子段和的 O(n) 解法 —— Kadane 算法
最大子段和 Kadane 算法程序填空:横线填 currentSum + a[i],与 a[i] 取大表示“另起炉灶 vs 接着续”。附扫描柱形图解、9 步模拟表、初始化全负陷阱、复杂度对比与 CSP 考点总结。
BFS 为什么能求最短路?—— dist[v] = dist[u]...
BFS 程序填空:dist[v] = dist[u] + 1。附 BFS 分层扩散图解(0~3 层 dist 递增)、选项逐项排除、队列过程模拟表、BFS 等价无权图最短路的原理、复杂度与 CSP 考点总结。
快排的 partition 中 Lomuto 划分与 i+1 的由来
快排 Lomuto 划分的程序填空:横线处填 swap(a[i+1], a[right]),返回 i+1。附不变量分析、划分前后图解、递归调用要点(p 不参与递归)与复杂度、CSP 考点总结。