基本原理

第一章 算法基础概念 #

1.1 算法定义与特性 #

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

1.2 算法复杂度分析 #

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

第二章 算法设计范式 #

2.1 分治算法 #

  • 分治策略基本原理
  • 递归与分治的关系
  • 经典分治算法实例
  • 分治算法复杂度分析

2.2 动态规划 #

  • 最优子结构性质
  • 重叠子问题特性
  • 备忘录技术
  • 状态转移方程设计

2.3 贪心算法 #

  • 贪心选择性质
  • 最优子结构验证
  • 贪心算法正确性证明
  • 贪心与动态规划比较

2.4 回溯算法 #

  • 解空间树概念
  • 剪枝优化技术
  • 回溯框架设计
  • 典型回溯问题分析

2.5 分支限界法 #

  • 界限函数设计
  • 优先队列应用
  • 分支策略选择
  • 限界条件确定

第三章 基本数据结构算法 #

3.1 数组与链表算法 #

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

3.2 栈与队列算法 #

  • 栈的应用算法
  • 队列的应用算法
  • 双端队列算法
  • 优先队列实现

3.3 树结构算法 #

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

3.4 图论算法 #

  • 图的表示方法
  • 深度优先搜索
  • 广度优先搜索
  • 最短路径算法
  • 最小生成树算法

第四章 排序与搜索算法 #

4.1 比较排序算法 #

  • 冒泡排序原理
  • 选择排序实现
  • 插入排序优化
  • 归并排序分析
  • 快速排序变体
  • 堆排序过程

4.2 非比较排序算法 #

  • 计数排序原理
  • 桶排序设计
  • 基数排序实现
  • 非比较排序适用范围

4.3 搜索算法进阶 #

  • 哈希搜索技术
  • 跳表搜索原理
  • B树搜索算法
  • 字符串匹配算法

第五章 算法分析与优化 #

5.1 算法正确性证明 #

  • 循环不变式方法
  • 数学归纳法应用
  • 算法终止性证明
  • 正确性验证技术

5.2 算法效率提升 #

  • 空间换时间策略
  • 预处理优化技术
  • 并行算法基础
  • 分布式算法概念

5.3 近似算法 #

  • 近似比概念
  • 随机化算法设计
  • 启发式算法原理
  • 局部搜索技术

第六章 高级算法专题 #

6.1 数论算法 #

  • 最大公约数算法
  • 素数判定算法
  • 模运算算法
  • 数论在密码学应用

6.2 计算几何算法 #

  • 凸包算法
  • 线段相交检测
  • 最近点对问题
  • 几何变换算法

6.3 字符串算法 #

  • KMP算法原理
  • 后缀树结构
  • 正则表达式匹配
  • 压缩算法基础

6.4 并行与分布式算法 #

  • 并行计算模型
  • 分布式一致性
  • 负载均衡算法
  • 容错算法设计

第七章 算法实践与应用 #

7.1 算法选择策略 #

  • 问题特征分析
  • 算法适用场景
  • 性能权衡考虑
  • 实际应用案例

7.2 算法测试与调试 #

  • 测试用例设计
  • 边界条件处理
  • 性能 profiling
  • 算法正确性验证

7.3 算法优化实践 #

  • 代码优化技巧
  • 内存管理优化
  • 缓存友好设计
  • 实际性能调优