算法书目录

328 阅读3分钟

算法目录

1. 概论

  1. 时间复杂度
  2. 空间复杂度

2. 递归

  1. 递推式的计算
  • 用特征方程求解递归方程
  • 用递归树求解递归方程
  1. 递归求解N皇后问题
  2. 循环结构代替递归过程
  3. 栈消除递归过程
  4. 删除二叉树的子树

3. 穷举法

  1. 求解幂集问题
  2. 求解0/1背包问题
  3. 求解全排列问题
  4. 求解最大连续子序列和
递归求穷举
  1. 用递归求解幂集问题
  2. 用递归求解全排列问题
  3. 用递归求解组合问题

4. 分治法

  1. 快速排序
  2. 归并排序
求解查找问题
  1. 折半查找
  2. 寻找一个序列中第K小元素
  3. 寻找两个等长有序序列的中位数
其他问题
  1. 求解最大连续子序列和问题
  2. 求解大整数乘法问题
  3. 求解矩阵乘法问题
  4. 求序列的最大元素和次大元素

5. 贪心法

  1. 贪心求解问题应该具有的性质
  2. 贪心法的一般求解过程
区间问题
  1. 求解区间覆盖问题
  2. 求解最大不相交区间问题
  3. 求解活动安排问题
其他问题
  1. 求解背包问题
  2. 求解多机调度问题
  3. 哈夫曼编码
  4. 求解磁盘排序问题
  5. 求解删数问题

6. 动态规划

  1. 动态规划的原理
  2. 动态规划求解的步骤
  3. 动态规划和其他方法的比较
  4. 求解整数拆分问题
  5. 求解最长公共子序列问题
  6. 求解0/1背包问题
  7. 求解完全背包问题
  8. 求解最大连续子序列和问题
  9. 求解资源分配问题
  10. 求最长单调递增子序列

7. 回溯法

  1. 问题的解空间
  2. 什么是回溯法
  3. 回溯法的算法框架
  4. 回溯法的时间分析
  5. 求解0/1背包问题
  6. 求解全排列问题
  7. 求解组合问题
  8. 采用回溯法递归求解迷宫问题
  9. 采用回溯法非递归求解迷宫问题
  10. 不采用栈求解N皇后问题
  11. 采用栈求解N皇后问题
  12. 求解装载问题

8. 分支界限法

  1. 分支界限法的设计思想
  2. 分支界限法的时间性能
求解0/1背包问题
  1. 采用队列式分支界限法求解
  2. 采用优先队列式分支界限法求解

9. 图搜索算法

  1. 图的定义
  2. 图的存储结构
图的搜索方法
  1. 图搜索的概念
  2. 深度优先搜索
  3. 广度优先搜索
最小生成树
  1. 最小生成树的概念
  2. 普里姆算法构造最小生成树
  3. 克鲁斯卡尔算法
最短路径
  1. 狄克斯特拉算法
  2. 贝尔曼-福特算法
  3. 弗洛伊德算法
利用STL设计算法
  1. 什么是容器
  2. 什么是算法
  3. 什么是迭代器
  4. 常用STL容器的使用
求解TSP问题
  1. TSP问题描述
  2. 穷举法求TSP
  3. 动态规划求TSP
  4. 回溯法求TSP
  5. 分支界限法求TSP
  6. 贪心法求TSP
求多段图的关键路径
  1. 求多段图的关键路径
网络流
  1. 相关概念
  2. 求最大流
  3. 割集与割量
  4. 求最小费用用最大流
其他
  1. 求图着色问题

10.计算几何

  1. 矢量的基本运算
  2. 判断一个点是否在一个矩形内
  3. 判断一个点是否在一条线段上
  4. 判断两条线段是否平行
  5. 判断两线段是否相交
  6. 判断一个点是否在多边形内
求解凸包问题
  1. 礼品包裹算法
  2. GraHam扫描算法
求解最近点对问题
  1. 用穷举法求最近点对
  2. 用分治法求最近点对
求解最远点对问题
  1. 用穷举法求最远点对
  2. 用分治法求最远点对
其他
  1. 求凸多边形的直径