第一章 算法概述
第二章 递归与分治
递归
概念:直接或间接调用自身的算法
范例:
阶乘
Fibonacci数列
Ackerman函数
排列问题
整数划分问题
Hanoi塔问题
分治
概念:将一个规模为n的问题分解为k个规模较小的子问题,这些子问题相互独立且与原问题相同,通过递归解决这些子问题,将得到的子问题的解合并作为原问题的解。
范例:
二分搜索
大整数乘法
Strassen矩阵乘法
棋盘覆盖
合并排序
快速排序
线性时间选择
最接近点对问题
循环赛日程表
第三章 动态规划
概念:与分治法思想类似,也是将待求问题分解成若干个子问题,先求解子问题,再得到原问题的解。与分治问题不同的是,适合动态规划求解的问题,经分解得到的子问题往往不是独立的。
第二章 递归与分治
递归
概念:直接或间接调用自身的算法
范例:
阶乘
Fibonacci数列
Ackerman函数
排列问题
整数划分问题
Hanoi塔问题
分治
概念:将一个规模为n的问题分解为k个规模较小的子问题,这些子问题相互独立且与原问题相同,通过递归解决这些子问题,将得到的子问题的解合并作为原问题的解。
范例:
二分搜索
大整数乘法
Strassen矩阵乘法
棋盘覆盖
合并排序
快速排序
线性时间选择
最接近点对问题
循环赛日程表
第三章 动态规划
概念:与分治法思想类似,也是将待求问题分解成若干个子问题,先求解子问题,再得到原问题的解。与分治问题不同的是,适合动态规划求解的问题,经分解得到的子问题往往不是独立的。
第四章 贪心算法
贪心策略、贪心选择性质
第五章 回溯法
深度搜索子集树或排列树
第六章 分支限界法
广度搜索子集树,设置界限函数bound()