这篇文章主要介绍了算法详解之分治法具体实现,需要的朋友可以参考下
分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。
分治法解题的一般步骤:
(1)分解,将要解决的问题划分成若干规模较小的同类问题;
(2)求解,当子问题划分得足够小时,用较简单的方法解决;
(3)合并,按原问题的要求,将子问题的解逐层合并构成原问题的解。
一言以蔽之:分治法的设计思想是,将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。
在来源gaodai$ma#com搞$$代**码)网认识分治之前很有必要先了解一下递归,当然,递归也是最基本的编程问题,一般接触过编程的人都会对递归有一些认识.为什么要先了解递归呢?你看,根据上面所说的,我们就要将一个问题分成若干个小问题,然后一一求解并且最后合并,这就是一个递归的问题,递归的去分解自身,递归的去解决每一个小问题,然后合并…
关于递归,这里举一个最简单的例子,求N!;
我们只需要定义函数
代码如下:
int calculate(int n)
{
if(n==1)
return 1;
else
return n*calculate(n-1); //调用自身…
}
以上就是算法详解之分治法具体实现的详细内容,更多请关注gaodaima搞代码网其它相关文章!