1.几种基本的算法思想(分治,动态规划,回溯)
文章目录
1.几种基本的算法思想
首先,我们先认识几个词:分治法,动态规划法,回溯法,分支限界法,贪心法。
我们必须知道,上面五种思想将贯穿我们的算法学习的全过程,这五种思想并没有啥深度和技术含量,他们更像是一种基石。
在我们以后写任何算法的时候,我们都要思考,我们写的这个算法是用的那种思想实现的。
1.1 分治法
1.1.1 分治法概述
分治法是计算机领域中最为常用的算法类型,其核心思想是 分而治之,其原理是:
首先将一个复杂混合的问题拆解为两个或两个以上类型相同的子问题,然后将子问题依然进行分治法处理,直到子问题本身简单到可以求解,
最终按照问题的拆解顺序,从子问题逐步向大问题结果汇总,层层向上,最终得到原问题的解。
分治法的一个典型的应用就是递归
1.1.2 分治法递归问题实例学习
分治法解决的最简单的问题是:
阶乘问题 ,求解N的阶乘(1234…*n)
这个问题看起来很简单:
class Test {
static int jiecheng(int n){
int result = 1;
for(int i=2;i<=n;i++)