【问题标题】:iterative function - divide and conquer function迭代函数 - 分治函数
【发布时间】:2013-02-20 06:40:21
【问题描述】:

我刚开始学习算法分析与设计课程? 我只想知道: 迭代函数和分治函数有什么区别? 它们是一样的吗?

【问题讨论】:

    标签: algorithm


    【解决方案1】:

    分而治之来自wikipedia

    分治算法的工作原理是递归地将一个问题分解为两个或多个相同(或相关)类型的子问题,直到这些子问题变得简单到可以直接解决。

    来自Wikipedia的迭代函数:

    在这个过程中,从某个初始数字开始,应用给定函数的结果作为输入再次输入到函数中,并重复这个过程。

    所以他们不一样

    【讨论】:

    • 谢谢...但是如何将类似:T(n) = 2T(n/2) + N 的内容翻译成代码,比如说 C++ 代码?有什么方法可以解决这样的问题吗?
    【解决方案2】:

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

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

    这绝不是权威回复。

    感谢黑熊的建议。

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

    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)}
    

    希望这些例子能更清楚地说明

    【讨论】:

    • 我会添加几个示例,例如合并排序和选择排序,OP 应该知道的典型教学算法
    猜你喜欢
    • 2022-01-01
    • 2017-04-07
    • 2010-12-14
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多