基础理论

第一部分 算法基本概念 #

算法定义与特性 #

  • 算法的基本定义
  • 算法的五大特性
  • 算法与程序的区别
  • 算法的表示方法

算法复杂度分析 #

  • 时间复杂度概念
  • 空间复杂度概念
  • 渐进表示法
  • 最坏、最好和平均情况分析

第二部分 算法设计范式 #

分治算法 #

  • 分治策略基本原理
  • 经典分治算法实例
  • 分治算法复杂度分析
  • 分治算法的应用场景

贪心算法 #

  • 贪心选择性质
  • 最优子结构性质
  • 贪心算法设计步骤
  • 贪心算法正确性证明

动态规划 #

  • 重叠子问题特性
  • 最优子结构特性
  • 备忘录方法
  • 动态规划实现方式

回溯算法 #

  • 回溯法基本思想
  • 状态空间树
  • 剪枝函数设计
  • 回溯算法应用实例

分支限界法 #

  • 分支限界法原理
  • 队列式分支限界法
  • 优先队列式分支限界法
  • 分支限界与回溯比较

第三部分 基础数据结构算法 #

数组与链表算法 #

  • 线性查找算法
  • 二分查找算法
  • 链表基本操作算法
  • 数组排序基础算法

栈与队列算法 #

  • 栈的基本操作算法
  • 队列的基本操作算法
  • 栈与队列应用算法
  • 双端队列算法

树结构算法 #

  • 二叉树遍历算法
  • 二叉搜索树操作算法
  • 堆结构与堆算法
  • 平衡树基础算法

图论算法 #

  • 图的遍历算法
  • 最短路径算法
  • 最小生成树算法
  • 拓扑排序算法

第四部分 排序与查找算法 #

比较排序算法 #

  • 冒泡排序算法
  • 选择排序算法
  • 插入排序算法
  • 快速排序算法
  • 归并排序算法
  • 堆排序算法

非比较排序算法 #

  • 计数排序算法
  • 桶排序算法
  • 基数排序算法
  • 非比较排序适用条件

查找算法 #

  • 顺序查找算法
  • 二分查找算法
  • 哈希查找算法
  • 树形结构查找算法

第五部分 算法分析技术 #

递归分析 #

  • 递归方程建立
  • 递归树分析方法
  • 主定理应用
  • 递归算法优化

摊还分析 #

  • 聚合分析方法
  • 会计分析方法
  • 势能分析方法
  • 摊还分析应用

概率分析 #

  • 随机算法分析
  • 期望时间复杂度
  • 概率分析技术
  • 随机化算法设计

第六部分 算法正确性证明 #

循环不变式 #

  • 循环不变式定义
  • 循环不变式建立
  • 循环不变式验证
  • 循环不变式应用

数学归纳法 #

  • 数学归纳法原理
  • 强归纳法与弱归纳法
  • 归纳法在算法证明中的应用
  • 归纳假设建立

反证法与构造法 #

  • 反证法证明技术
  • 构造性证明方法
  • 存在性证明技巧
  • 算法正确性验证

第七部分 高级算法专题 #

字符串算法 #

  • 字符串匹配算法
  • 编辑距离算法
  • 后缀数组与后缀树
  • 正则表达式匹配算法

数值算法 #

  • 大整数运算算法
  • 矩阵运算算法
  • 数值积分算法
  • 随机数生成算法

几何算法 #

  • 凸包算法
  • 线段相交检测
  • 最近点对问题
  • 几何计算基础

并行算法基础 #

  • 并行计算模型
  • 并行算法设计
  • 并行复杂度分析
  • 典型并行算法

第八部分 算法实践与应用 #

算法实现技巧 #

  • 边界条件处理
  • 错误处理机制
  • 代码优化技巧
  • 测试用例设计

算法选择策略 #

  • 问题特征分析
  • 算法性能评估
  • 实际约束考虑
  • 算法组合使用

实际应用案例 #

  • 数据库查询优化
  • 网络路由算法
  • 人工智能算法基础
  • 操作系统调度算法