美文网首页
谈谈递归的缺点

谈谈递归的缺点

作者: IELBHJY | 来源:发表于2017-11-20 23:34 被阅读0次

最近在求解一个带约束条件的路径问题。用的A*算法,可是编程的时候发现,明明思路逻辑没有问题,但是运行的时候总报奇怪的错误。比如:
Exception in thread "main" java.lang.StackOverflowError
at sun.nio.cs.UTF_8$Encoder.encodeLoop(UTF_8.java:691)
at java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:579)
at sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:271)
at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:125)
当时一脸懵逼,这都是啥,怎么堆栈会溢出。。各种百度,各种可能出错的地方都试了,还是不行,终于看到一篇博客,上面写着是递归过多的原因。我自己写了代码试了一下,果然如此。具体看代码。

public class Main {

    static int count=1;
    public static void testRecurise()
    {
        while(count<10000){
            System.out.println("函数运行了"+String.valueOf(count)+"次");
            count++;
            testRecurise();
        }
    }
    public static void main(String[] args) {
    // write your code here
        testRecurise();
        System.out.println("执行其余的代码");
    }
}

运行结果如图所示


屏幕快照 2017-11-20 下午11.27.16.png

总结一下,尽量用循环而不用递归。

相关文章

  • 谈谈递归的缺点

    最近在求解一个带约束条件的路径问题。用的A*算法,可是编程的时候发现,明明思路逻辑没有问题,但是运行的时候总报奇怪...

  • 递归其实很可爱

    其实递归我们经常用 但是到底如何定义递归? 到底什么情况下使用递归? 递归能将复杂问题简单化,但是递归的缺点又是什...

  • 数据结构----递归

    1.使用递归实现阶乘 2.用递归求和(普通实现方式) 3.另一种递归求和实现 4.循环和递归的优缺点 使用递归能实...

  • Python学习之路(递归函数)

    函数之 递归函数 小结 使用递归函数的优点是逻辑简单清晰,缺点是过深的调用会导致栈溢出。针对尾递归优化的语言可以通...

  • 递归实现 n!

    递归的特点: 自己调用自己 设定终止条件 优点:算法简单缺点:效率低下 用递归实现阶乘 n! 用 for 循环实现...

  • 谈谈我的缺点

    今天翻阅了自己过往的日志,内心觉得十分羞愧。过去的我,太不懂事,而现在的我,也只懂一点,所以我想谈谈自己的...

  • 用递归写一个算法,计算从1到100的和

    问题: 1.算法的时间复杂度是多少 2.递归会有什么缺点 3.不用递归能否实现,复杂度能否降到O(1) 递归算法:...

  • Python 递归

    1. 斐波那契数列的传统方法: 递归的方法一: 这个方法的缺点是计算的速度很慢,因为返回调用了两次递归,当递归的数...

  • 面试官:请谈谈你有哪些缺点,回答“自己太诚实”的,被当场出局

    请谈谈你有哪些缺点 在面试过程中,我们难免会遇到一些比较难答的问题,其中“谈谈你的缺点”,或者说“谈谈你有什么优点...

  • 小知识点(三)数据结构与算法,设计模式

    迭代和递归的特点,并比较优缺点: (1)定义: 程序调用自身称为递归。 利用变量的原值推出新值称为迭代。 (2)优...

网友评论

      本文标题:谈谈递归的缺点

      本文链接:https://www.haomeiwen.com/subject/ouzbvxtx.html