其他分享
首页 > 其他分享> > 6.初识迭代和递归

6.初识迭代和递归

作者:互联网

提示:如果刚开始不能完全理解这个概念,不要着急,随着算法题的积累,慢慢就会明白,文字是抽象概括的,是建立在书写者自身的实践总结而来,所以于书写者而言,他对文字的理解是基于那些实例来理解,而对于读者而言,少数的实例并不一定能理解到文字真正想表达的含义。

 

一、迭代

顽猴爬台阶算法中,就采用了迭代的方式。

 

二、递归

单词接龙算法中,辅助函数中就用到了递归。

 

当然,最常见的递归例子是用递归方式求 n!。

查看代码

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        System.out.println(factorial(n));
    }
    
    private static int factorial(int n){
        if(n == 0 || n == 1){
            return 1;
        }else{
            return n * factorial(n - 1);
        }
    }
}

 

 

三、两者比较

摘录于递归和迭代有什么区别 - oo_o - 博客园 (cnblogs.com)

递归和迭代都是循环的一种。
递归是重复调用函数自身实现循环。迭代是函数内某段代码实现循环,
而迭代与普通循环的区别是:循环代码中参与运算的变量同时是保存结果的变量,当前保存的结果作为下一次循环计算的初始值。

递归循环中,遇到满足终止条件的情况时逐层返回来结束。
迭代则使用计数器结束循环。当然很多情况都是多种循环混合采用,这要根据具体需求。

 

递归与迭代都是基于控制结构:迭代用重复结构,而递归用选择结构。
递归与迭代都涉及重复:迭代显式使用重复结构,而递归通过重复函数调用实现重复。
递归与迭代都涉及终止测试:迭代在循环条件失败时终止,递归在遇到基本情况时终止。


使用计数器控制重复的迭代和递归都逐渐到达终止点:迭代一直修改计数器,直到计数器值使循环条件失败;递归不断产生最初问题的简化副本,直到达到基本情况。
迭代和递归过程都可以无限进行:如果循环条件测试永远不变成false,则迭代发生无限循环;如果递归永远无法回推到基本情况,则发生无穷递归。

递归函数是通过调用函数自身来完成任务,而且在每次调用自身时减少任务量。
而迭代是循环的一种形式,这种循环不是由用户输入而控制,每次迭代步骤都必须将剩余的任务减少;..

标签:迭代,递归,重复,初识,计数器,循环,终止
来源: https://www.cnblogs.com/Jukim/p/16080055.html