posts

核心算法:排序、搜索、图论与动态规划

面试核心算法系统讲解:六大排序算法的原理与对比,二分查找与搜索策略,递归与分治框架,以及动态规划的状态定义与转移方程,配合复杂度分析与经典例题。

核心算法

面试必考算法原理详解:排序、搜索、递归、动态规划。

本章节包含

算法核心思想面试重点
排序比较、分治、计数快排、归并、堆排序、稳定性
搜索减治、遍历二分查找、DFS、BFS
递归与分治自相似分解递归树、尾递归、主定理
动态规划最优子结构状态定义、转移方程、空间优化
贪心局部最优与 DP 的区别、适用条件
复杂度分析数学估算主定理、摊还分析
图论图遍历与优化拓扑排序、最短路径、MST、并查集
高级数据结构区间查询与修改线段树、树状数组、Lazy Propagation
DP 套路模板套路分类与模板代码线性/区间/背包/树形/状压五类模板与优化
图论模板模板速用BFS/DFS、Dijkstra、拓扑排序、并查集、MST

算法选型速查

场景推荐算法时间复杂度
通用快速排序快速排序O(n log n) 平均
需要稳定性归并排序O(n log n) 稳定
数据范围小计数排序O(n + k)
海量数据 Top K堆排序 / 快速选择O(n log k) / O(n)
查找有序数组二分查找O(log n)
图遍历DFS / BFSO(V + E)
最短路径(无负权)DijkstraO((V + E) log V)
最短路径(有负权)Bellman-FordO(V * E)
最小生成树Kruskal / PrimO(E log E) / O((V + E) log V)
连通性/环检测Union-FindO(α(N))
拓扑排序Kahn / DFSO(V + E)
区间和 + 单点修改树状数组(BIT)O(log n)
区间修改 + 区间查询Lazy 线段树O(log n)
逆序对计数BIT + 离散化O(n log n)
最优子结构问题动态规划视问题而定

每个子章节包含:原理、代码实现、复杂度证明、面试真题。

全部文章 Books game Java Indie golang 客户端开发 Minigame Saas rust Python