算法书目录
算法目录
1. 概论
- 时间复杂度
- 空间复杂度
2. 递归
- 递推式的计算
- 递归求解N皇后问题
- 循环结构代替递归过程
- 栈消除递归过程
- 删除二叉树的子树
3. 穷举法
- 求解幂集问题
- 求解0/1背包问题
- 求解全排列问题
- 求解最大连续子序列和
递归求穷举
- 用递归求解幂集问题
- 用递归求解全排列问题
- 用递归求解组合问题
4. 分治法
- 快速排序
- 归并排序
求解查找问题
- 折半查找
- 寻找一个序列中第K小元素
- 寻找两个等长有序序列的中位数
其他问题
- 求解最大连续子序列和问题
- 求解大整数乘法问题
- 求解矩阵乘法问题
- 求序列的最大元素和次大元素
5. 贪心法
- 贪心求解问题应该具有的性质
- 贪心法的一般求解过程
区间问题
- 求解区间覆盖问题
- 求解最大不相交区间问题
- 求解活动安排问题
其他问题
- 求解背包问题
- 求解多机调度问题
- 哈夫曼编码
- 求解磁盘排序问题
- 求解删数问题
6. 动态规划
- 动态规划的原理
- 动态规划求解的步骤
- 动态规划和其他方法的比较
- 求解整数拆分问题
- 求解最长公共子序列问题
- 求解0/1背包问题
- 求解完全背包问题
- 求解最大连续子序列和问题
- 求解资源分配问题
- 求最长单调递增子序列
7. 回溯法
- 问题的解空间
- 什么是回溯法
- 回溯法的算法框架
- 回溯法的时间分析
- 求解0/1背包问题
- 求解全排列问题
- 求解组合问题
- 采用回溯法递归求解迷宫问题
- 采用回溯法非递归求解迷宫问题
- 不采用栈求解N皇后问题
- 采用栈求解N皇后问题
- 求解装载问题
8. 分支界限法
- 分支界限法的设计思想
- 分支界限法的时间性能
求解0/1背包问题
- 采用队列式分支界限法求解
- 采用优先队列式分支界限法求解
9. 图搜索算法
- 图的定义
- 图的存储结构
图的搜索方法
- 图搜索的概念
- 深度优先搜索
- 广度优先搜索
最小生成树
- 最小生成树的概念
- 普里姆算法构造最小生成树
- 克鲁斯卡尔算法
最短路径
- 狄克斯特拉算法
- 贝尔曼-福特算法
- 弗洛伊德算法
利用STL设计算法
- 什么是容器
- 什么是算法
- 什么是迭代器
- 常用STL容器的使用
求解TSP问题
- TSP问题描述
- 穷举法求TSP
- 动态规划求TSP
- 回溯法求TSP
- 分支界限法求TSP
- 贪心法求TSP
求多段图的关键路径
- 求多段图的关键路径
网络流
- 相关概念
- 求最大流
- 割集与割量
- 求最小费用用最大流
其他
- 求图着色问题
10.计算几何
- 矢量的基本运算
- 判断一个点是否在一个矩形内
- 判断一个点是否在一条线段上
- 判断两条线段是否平行
- 判断两线段是否相交
- 判断一个点是否在多边形内
求解凸包问题
- 礼品包裹算法
- GraHam扫描算法
求解最近点对问题
- 用穷举法求最近点对
- 用分治法求最近点对
求解最远点对问题
- 用穷举法求最远点对
- 用分治法求最远点对
其他
- 求凸多边形的直径