我刚开始学习算法分析和设计课程? 我只是想知道: 迭代函数和分而治之功能有什么区别? 它们是一样的吗?
答案 0 :(得分:2)
从wikipedia划分并征服:
分而治之算法通过递归地将问题分解为相同(或相关)类型的两个或更多个子问题来工作,直到这些子问题变得足够简单直接解决。
来自Wikipedia的迭代函数:
在此过程中,从某个初始数开始,应用给定函数的结果再次作为输入馈送到函数中,并重复此过程。
所以他们不一样
答案 1 :(得分:0)
分而治之的算法会将问题分解成更小的部分,然后解决较小的部分然后聚合以获得最终的解决方案。
迭代算法是您尝试通过遍历整个问题来解决整个问题的地方。
这绝不是一个有效的回复。
感谢blackbear的建议。
Fibonacci系列的迭代例子就是这样的
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)}
希望这些例子增加更多清晰度