算法知识地图
算法学习的主线不是背题,而是理解“数据结构提供组织方式,算法利用组织方式降低复杂度”。这页用来连接已有笔记和待补主题。
主线关系
复杂度分析
-> 基础数据结构
-> 排序与查找
-> 递归 / 分治 / 回溯
-> 树与图
-> 动态规划 / 贪心
-> 字符串与高级专题1. 基础与复杂度
- 数据结构与算法基础知识 是入口,负责定义数据元素、逻辑结构、物理结构、ADT、时间复杂度和空间复杂度。
- 学算法时先判断输入规模,再选复杂度级别:
O(1)、O(logn)、O(n)、O(nlogn)、O(n^2)的差异决定能不能跑完。
2. 线性结构
3. 树形结构
关系理解:二叉树强调结构,二叉搜索树强调有序性,平衡树强调高度控制,堆强调局部优先级。
4. 图形与散列结构
图相关的最短路、最小生成树、强连通分量等主题已集中放到 待补主题及具体维护规则,后续逐步展开。
5. 排序
关系理解:插入/选择/冒泡适合理解基本思想;归并强调分治和稳定性;快排强调划分;堆排强调堆结构;计数/桶排序依赖数据范围。
6. 字符串算法
后续可补:Boyer-Moore、Rabin-Karp、Manacher、Z 算法、Trie、后缀数组。
7. 待补专题
- 图论:Dijkstra、Floyd、Bellman-Ford、Prim、Kruskal、Tarjan。
- 动态规划:背包、LIS、LCS、区间 DP、树形 DP、状态压缩 DP。
- 字符串:Manacher、Z 算法、后缀数组、后缀自动机。
完整待补清单见 待补主题及具体维护规则。