递归与迭代(递推)有什么区别

来源:百度知道 编辑:UC知道 时间:2024/07/08 12:25:00

zwu说到点子上了。
递归是自顶向下逐步拓展需求,最后自下向顶运算。即由f(n)拓展到f(1),再由f(1)逐步算回f(n)
迭代是直接自下向顶运算,由f(1)算到f(n)。

递归:程序调用的编程技巧叫做递归。递归做为一种算法在程序设计语言中广泛应用。
一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。

递推:递推算法是一种用若干步可重复的简运算(规律)来描述复杂问题的方法。递推是序列计算机中的一种常用算法。按照一定的规律来计算序列中的每个项,通常是通过计算机前面的一些项来得出序列中的指定象的值。

迭代:迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次“迭代”。从理论上说,所有的递归函数都可以转换为迭代函数,反之亦然,然而代价通常都是比较高的。当递归次数较多时,内存占用也会随之增加。

递归与递推的区别:

递归整体是分为两步的:1.向下递推直到限制条件到了。2.回溯结果。

递推:从初始态出发,不断改变自身的过程。

 递归与迭代的区别例子:

(1)分别用递归法和迭代法求阶乘

#include <stdio.h>  
  
// 递归计算阶乘  
long factorial_recursion(int n){  
    if(n<=0){  
        return 1; &nb