算法基础
算法基础目录 #
第一部分 算法入门 #
算法概述 #
- 算法的定义与特征
- 算法与程序的区别
- 算法的表示方法
- 算法设计的基本步骤
算法复杂度分析 #
- 时间复杂度的概念
- 空间复杂度的概念
- 渐进符号(大O、大Ω、大Θ)
- 最好、最坏和平均情况分析
- 递归算法的复杂度分析
第二部分 基本数据结构 #
线性数据结构 #
- 数组与链表
- 栈与队列
- 哈希表
- 字符串
非线性数据结构 #
- 树的基本概念
- 二叉树与二叉搜索树
- 堆与优先队列
- 图的基本概念
第三部分 基础算法设计 #
排序算法 #
- 冒泡排序与选择排序
- 插入排序与希尔排序
- 归并排序
- 快速排序
- 堆排序
- 计数排序与基数排序
查找算法 #
- 顺序查找
- 二分查找
- 哈希查找
- 树形查找(BST、AVL、红黑树)
第四部分 算法设计范式 #
分治算法 #
- 分治策略的基本思想
- 经典分治算法实例
- 分治算法的复杂度分析
贪心算法 #
- 贪心选择性质
- 最优子结构
- 贪心算法的应用实例
动态规划 #
- 动态规划的基本原理
- 最优子结构与重叠子问题
- 记忆化搜索与递推实现
- 经典动态规划问题
回溯算法 #
- 回溯法的基本框架
- 剪枝优化技术
- 经典回溯问题求解
第五部分 图算法 #
图的遍历 #
- 深度优先搜索(DFS)
- 广度优先搜索(BFS)
- 遍历算法的应用
最短路径算法 #
- Dijkstra算法
- Bellman-Ford算法
- Floyd-Warshall算法
最小生成树 #
- Prim算法
- Kruskal算法
网络流算法 #
- 最大流问题
- 最小割问题
- Ford-Fulkerson方法
第六部分 高级专题 #
字符串匹配算法 #
- 朴素字符串匹配
- KMP算法
- Boyer-Moore算法
- Rabin-Karp算法
数论算法 #
- 质数判定与质因数分解
- 最大公约数与最小公倍数
- 模运算与快速幂
计算几何基础 #
- 点、线、面的基本运算
- 凸包算法
- 线段相交判定
近似算法 #
- 近似算法的性能度量
- 经典问题的近似解法
- 随机化算法
第七部分 算法实践 #
算法实现技巧 #
- 边界条件处理
- 错误处理机制
- 代码优化方法
算法测试与调试 #
- 测试用例设计
- 性能测试方法
- 常见错误分析
算法选择策略 #
- 问题分析与算法匹配
- 时间与空间的权衡
- 实际应用场景考量