返回   cpper编程论坛 > 技术杂烩
注册账号 论坛帮助 会员列表 日历事件 搜索 今日新帖 标记版面已读

技术杂烩 找不到地方的技术问题?这里!

回复
 
LinkBack 主题工具 显示模式
  #1 (permalink)  
旧 2008-09-05
学习者
 
注册日期: 2008-08-11
帖子: 11
afey 正向着好的方向发展
默认 迭代、递归、循环

请问:
递归、迭代和循环之间的区别与相同之处?
迭代是循环吗?迭代的效率是不是要比递归快啊?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
回复时引用此帖
  #2 (permalink)  
旧 2008-10-13
GENESIS 的头像
初级会员
 
注册日期: 2008-08-06
帖子: 9
GENESIS 正向着好的方向发展
默认 回复: 迭代、递归、循环

一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。
注意:
(1) 递归就是在过程或函数里调用自身;
(2) 在使用递增归策略时,必须有一个明确的递归结束条件,称为递归出口。

递归算法一般用于解决三类问题:
(1)数据的定义是按递归定义的。(Fibonacci函数)
(2)问题解法按递归算法实现。(回溯)
(3)数据的结构形式是按递归定义的。(树的遍历,图的搜索)
参考资料:[url=http://baike.baidu.com/view/556681.htm]

递归:在函数中调用自身的程序过程。深度优先。

循环只是一个不断反复的过程。



迭代:深度是可以预见的,所以不需要递归和递推来实现,直接把代码嵌套写下去就行。

List集合框架的迭代器在做网页开发的效率比for循环遍历要好,更快
楼主在以后的学习中自己去体会领悟吧。

此帖于 2008-10-13 09:32 PM 被 GENESIS 编辑.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
回复时引用此帖
  #3 (permalink)  
旧 2008-10-14
liuxinyu 的头像
高级会员
 
注册日期: 2006-02-09
帖子: 311
文章: 49
liuxinyu 正向着好的方向发展
默认 回复: 迭代、递归、循环

这个问题挺大,也可以从不同角度阐述;
玄一点说,大部分基于冯。诺衣慢的计算模型都是基于副作用的,也就是说靠副作用改变寄存器的内容完成计算。
循环就是用来支持不断实现这样副作用的语言结构,从fortran开始到algol系列ada等全部支持循环。

基于函数式的计算,并非靠副作用,因此递归以及基于递归的结构(标)起了极其关键的作用。理论上循环全部可以通过递归表达,而反之并不一定。
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
回复时引用此帖
回复

书签

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码
Trackbacks are 启用
Pingbacks are 启用
Refbacks are 启用



所有时间均为格林尼治时间 +9。现在的时间是 07:28 AM


Powered by vBulletin® 版本 3.7.0
版权所有 ©2000 - 2009,Jelsoft Enterprises Ltd.
(C) Copy Right All Right Reserved 2001 - 2007

Search Engine Friendly URLs by vBSEO 3.1.0