本文简单比较了一下相同逻辑下,递归实现和循环实现的效率差异
已经不记得最初是从哪里获取的信息了,自己总有一个印象是递归的效率比循环差,因为递归有很大的函数调用开销,再加上递归可能存在的堆栈溢出问题...(本文暂不考虑该问题),所以书写代码时还是尽量使用循环为好....64% 左右了 ~
试验到现在,似乎都印证了我之前的印象: 递归比循环慢,写代码就要写循环~
我们最后来看个真实的(也更复杂的)示例:查找指定名字的子节点(假设我们有一颗树形结构的节点树,给出根节点,...还有一个问题之前没有提及,就是代码可读性问题,从我个人经验来讲,递归代码的可读性大体上还是要优于循环代码的....结论
一般而言,将递归代码改写为循环代码可以提高效率,但是一旦改写过程中引入了堆操作,那么结果往往是相反的.