第一部分 算法基本概念 #
算法定义与特性 #
- 算法的基本定义
- 算法的五大特性
- 算法与程序的区别
- 算法的表示方法
算法复杂度分析 #
- 时间复杂度概念
- 空间复杂度概念
- 渐进表示法
- 最坏、最好和平均情况分析
第二部分 算法设计范式 #
分治算法 #
- 分治策略基本原理
- 经典分治算法实例
- 分治算法复杂度分析
- 分治算法的应用场景
贪心算法 #
- 贪心选择性质
- 最优子结构性质
- 贪心算法设计步骤
- 贪心算法正确性证明
动态规划 #
- 重叠子问题特性
- 最优子结构特性
- 备忘录方法
- 动态规划实现方式
回溯算法 #
- 回溯法基本思想
- 状态空间树
- 剪枝函数设计
- 回溯算法应用实例
分支限界法 #
- 分支限界法原理
- 队列式分支限界法
- 优先队列式分支限界法
- 分支限界与回溯比较
第三部分 基础数据结构算法 #
数组与链表算法 #
- 线性查找算法
- 二分查找算法
- 链表基本操作算法
- 数组排序基础算法
栈与队列算法 #
- 栈的基本操作算法
- 队列的基本操作算法
- 栈与队列应用算法
- 双端队列算法
树结构算法 #
- 二叉树遍历算法
- 二叉搜索树操作算法
- 堆结构与堆算法
- 平衡树基础算法
图论算法 #
- 图的遍历算法
- 最短路径算法
- 最小生成树算法
- 拓扑排序算法
第四部分 排序与查找算法 #
比较排序算法 #
- 冒泡排序算法
- 选择排序算法
- 插入排序算法
- 快速排序算法
- 归并排序算法
- 堆排序算法
非比较排序算法 #
- 计数排序算法
- 桶排序算法
- 基数排序算法
- 非比较排序适用条件
查找算法 #
- 顺序查找算法
- 二分查找算法
- 哈希查找算法
- 树形结构查找算法
第五部分 算法分析技术 #
递归分析 #
- 递归方程建立
- 递归树分析方法
- 主定理应用
- 递归算法优化
摊还分析 #
- 聚合分析方法
- 会计分析方法
- 势能分析方法
- 摊还分析应用
概率分析 #
- 随机算法分析
- 期望时间复杂度
- 概率分析技术
- 随机化算法设计
第六部分 算法正确性证明 #
循环不变式 #
- 循环不变式定义
- 循环不变式建立
- 循环不变式验证
- 循环不变式应用
数学归纳法 #
- 数学归纳法原理
- 强归纳法与弱归纳法
- 归纳法在算法证明中的应用
- 归纳假设建立
反证法与构造法 #
- 反证法证明技术
- 构造性证明方法
- 存在性证明技巧
- 算法正确性验证
第七部分 高级算法专题 #
字符串算法 #
- 字符串匹配算法
- 编辑距离算法
- 后缀数组与后缀树
- 正则表达式匹配算法
数值算法 #
- 大整数运算算法
- 矩阵运算算法
- 数值积分算法
- 随机数生成算法
几何算法 #
- 凸包算法
- 线段相交检测
- 最近点对问题
- 几何计算基础
并行算法基础 #
- 并行计算模型
- 并行算法设计
- 并行复杂度分析
- 典型并行算法
第八部分 算法实践与应用 #
算法实现技巧 #
- 边界条件处理
- 错误处理机制
- 代码优化技巧
- 测试用例设计
算法选择策略 #
- 问题特征分析
- 算法性能评估
- 实际约束考虑
- 算法组合使用
实际应用案例 #
- 数据库查询优化
- 网络路由算法
- 人工智能算法基础
- 操作系统调度算法