特牛网址导航

递归与非递归算法_在什么情况下适合递归改为非递归-CSDN博客

网友收藏
文章浏览阅读2.8k次。一、原因:递归算法一般效率更低;有些程序语言不支持递归。二、方法:将递归算法转换为非递归算法有两种方法,一种是直接求值,不需要回溯;另一种是不能直接求值,需要回溯。前者使用一些变量保存中间结果,称为直接转换法;后者使用栈保存中间结果,称为间接转换法,下面分别讨论这两种方法。直接转换法直接转换法通常用来消除尾递归和单向递归,将递归结构用循环结构来替代。尾递归是指在递归算法中,递归调用语句只有一个,而且是处在算法的最后。例如求阶乘的递归算法:long fact(int n){  if(n0) _在什么情况下适合递归改为非递归