java里递归和迭代分别是什么算法啊-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

java里递归和迭代分别是什么算法啊

知与谁同 2018-07-15 09:28:05 719
java里递归和迭代分别是什么算法啊普通话说,别复制
算法 Java
分享到
取消 提交回答
全部回答(1)
  • 行者武松
    2019-07-17 22:54:36
    迭代是普通的循环。
    例:求从1加到10
    int sum=0
    for(int i=0;i<= 10;i++){
    sum=sum+i;
    }

    递归是指一个函数直接或间接调用自己。
    好比:从前有个庙庙里有个大和尚和小和尚,大和尚叫小和尚讲故事,小和尚说从前有个庙庙里有个大和尚和小和尚,小和尚叫大和尚讲故事,大和尚说从前....

    递归的特点:
    必有三个条件:
    1. 间接或直接调用自己。
    2. 一定要有退出的条件(比方说大和尚口干了不听故事了)。否则就是死循环
    3。要有逻辑体(想要做的事);

    public int sum(int x){
    if(x<=0){
    return x;
    }
    return x+sum(x-1);
    }
    int s=10;
    int total=sum(s);

    该例中,sum函数总是调用自己,return x+sum(x-1);
    sum有退出条件, x<=0

    最后的结果是把 10+9+8+7+... 1 返回

    在很多种情况下,迭代和递归都可以完成相同的功能, 不过递归有些功能迭代就完成不了。 并且代码没有递归简洁,熟练使用递归后能提高代码质量。
    0 0
人工智能
使用钉钉扫一扫加入圈子
+ 订阅

了解行业+人工智能最先进的技术和实践,参与行业+人工智能实践项目

推荐文章
相似问题
推荐课程