在计算机算法中,它们有什么区别?

问题描述:

在计算机算法中,它们有什么区别?

递归与迭代都是基于控制结构:迭代用重复结构,而递归用选择结构.
递归与迭代都涉及重复:迭代显式使用重复结构,而递归通过重复函数调用实现重复.
递归与迭代都涉及终止测试:迭代在循环条件失败时终止,递归在遇到基本情况时终止.
使用计数器控制重复的迭代和递归都逐渐到达终止点:迭代一直修改计数器,直到计数器值使循环条件失败;递归不断产生最初问题的简化副本,直到达到基本情况.迭代和递归过程都可以无限进行:如果循环条件测试永远不变成false,则迭代发生无限循环;如果递归永远无法回推到基本情况,则发生无穷递归.
递归函数是通过调用函数自身来完成任务,而且在每次调用自身时减少任务量.而迭代是循环的一种形式,这种循环不是由用户输入而控制,每次迭代步骤都必须将剩余的任务减少;也就是说,循环的每一步都必须执行一个有限的过程,并留下较少的步骤.