递归与迭代的选择 递归副作用

# 递归与循环的选择    

# 递归受制深度,循环可以无限

 

都需要

    循环地执行:迭代是显示地使用一个循环结构,而递归通过重复地进行函数调用来实现循环。

    终止测试;当循环条件为假时迭代结束,当遇到基线条件时递归结束

迭代

  基于循环结构

递归

  基于选择结构

迭代

  改变计数器变量直至它的值使得循环继续条件为假

递归

  不断地将问题的规模逐渐变小直至达到基线条件

 

副作用

  迭代

    忽略

  递归

    不断地执行函数调用机制,产生很大的函数调用开销,从而在处理器的时间和存储器的空间两方面付出很大的代价;

    每一次递归调用都要创建函数的一个副本(函数变量的副本),这是很耗费存储器的。

 

软件工程视点

  任何一个介意用递归方法来求解的问题,都可以用迭代方法求解。

  递归更自然地反映了问题的本质,这样设计的程序直观明了,易于排错。

 

posted @ 2019-03-07 12:48  papering  阅读(262)  评论(0编辑  收藏  举报