Java递归回溯算法

    选择打赏方式

在我们解决很多重复的问题的时候,将会涉及到很多重复的代码,但是编程的基本原则就是简洁,显然这些重复的代码违背了这项原则,那么算法中就为我们提供了一种减少重复性代码的方法,这种方法就是递归,解释起来就是方法自己调用自己,然后来解决问题,这种方法有很明显的优点,就是极大的减少了代码量,但是也有一个缺点,代码不容易理解,并且在执行有些操作的时候执行效率很低,但是因为他有简化代码的优点,在解决一些难题的时候我们也可以按情况使用递归。

使用递归应该遵循的规则

  1. 每当执行一次方法时就会创建一个独立的栈空间
  2. 每一个方法的局部变量都是独立的不会相互影响
  3. 特殊情况当使用引用类型的变量时(如数组),所有的方法将会使用同一个变量
  4. 执行递归方法的条件必须向递归结束逼近,否则程序将会一直执行下去,最终导致程序崩溃
  5. 当一个方法执行完毕或者遇到return时,次方法就将执行完毕,return将会返回给方法的调用者

执行完一个方法之后将会返回下一个栈(回溯),并且执行下一个栈在调用方法之后的代码,直到该方法再一次被执行完毕之后,又返回到下一层栈,再接着执行上述操作,直到全部栈的方法都执行完毕(递归结束)之后该递归结束,接着执行下面的方法,直到程序执行完毕。

常见的递归问题有迷宫问题,八皇后问题

版权声明:若无特殊注明,本文为《若离风》原创,转载请保留文章出处。
本文链接:https://www.rlfit.cn/post-60.html
正文到此结束

热门推荐

发表吐槽

你肿么看?

你还可以输入 250 / 250 个字

嘻嘻 大笑 可怜 吃惊 害羞 调皮 鄙视 示爱 大哭 开心 偷笑 嘘 奸笑 委屈 抱抱 愤怒 思考 日了狗 胜利 不高兴 阴险 乖 酷 滑稽

评论信息框
可使用QQ号实时获取昵称+头像

私密评论

吃奶的力气提交吐槽中...


既然没有吐槽,那就赶紧抢沙发吧!