2013-03-05 109 views

回答

2

分而治之从wikipedia

分而治之算法通过递归地将问题分解成相同(或相关)类型的两个或更多子问题,直到这些问题变得足够简单以直接解决。从Wikipedia

迭代函数:

在这个过程中,从一些初始编号开始,施加给定函数的结果是在函数作为输入再次供给,并且重复此过程。

因此,他们并不相同

+0

谢谢... 但如何翻译的东西比如: T(n)= 2T(n/2)+ N代码,比方说C++代码? 有没有解决这个问题的方法? – AWT 2013-03-05 18:36:14

0

分而治之的算法会将问题分成更小的部分,然后解决更小的部分,然后聚合以获得最终解决方案。

迭代算法是您尝试通过遍历整个问题来解决整个问题的地方。

这绝不是一个授权答复。

感谢blackbear的建议。

斐波那契数列的迭代的例子是这样的

http://en.literateprograms.org/Fibonacci_numbers_(Scala)

而且一分而治之的方法是这样的

def fibo(n:Int):Int = { if(n==1 || n==0) 1 else fibo(n-1) + fibo(n-2)} 

希望这些例子可以添加更多的清晰度

+0

我想补充一对夫妇像合并排序和选择排序的例子,典型TEACHED算法的OP应该知道 – BlackBear 2013-03-05 18:11:45