递归深度理解
发布时间
阅读量:
阅读量
1、递归的理解
该方法在执行过程中自我调用即被称作"递归"其中该过程必须具备收敛到终止状态的特点
例如它类似于数学归纳法它需要初始情形以及建立后续情形的步骤
这相当于将整个过程分解为执行'递'运算以及完成'归'结两个阶段
举个例子:
当你在电影院看电影时,由于光线过于昏暗大家都会就近坐下,就座后你可能需要知道自己的座位排数.于是你就会向前方的观众询问排号,前排的观众可能并不清楚自己的排号,因此他们会去询问前排的人.这种询问过程会一直持续下去,直到有一个人知道自己的排号,随后他会将这个信息传递给后排的人.后排的人接收到前排人的信息后,就可以通过计算得出自己的座位排号.接着他/她会将这个信息传递给后排的人.这个过程会一直持续下去,直到你通过前一排的信息计算出自己的位置.
通过这个例子来总结几个点
- 后方的兄弟开始向对方发问,在这相当于一个递归调用的过程。
- 当一个前部的人被询问时,在栈上为后续问题预留了一块内存空间。
- 由于不清楚自己的位置而不断向前询问,并期待上一队的结果反馈。
- 所有队列都会依次推进直至确定自身的具体位置。
- 知道自身位置后立即向上一队发送计算结果;这一过程即为回传操作;每个栈体内只有在收到所有反馈信息后才会完成当前操作并返回最终结果。
2、图解过程分析
//递归求N!,加上
全部评论 (0)
还没有任何评论哟~
