鱼C论坛

 找回密码
 立即注册
查看: 625|回复: 4

[已解决]迭代和递归有什么区别

[复制链接]
发表于 2020-4-15 14:51:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
大佬们,
迭代和递归的概念是啥呀,有什么区别,应该去看那些课程了解。
最佳答案
2020-4-15 14:53:38
(1)定义:

程序调用自身称为递归。

利用变量的原值推出新值称为迭代。

(2)优缺点

递归

优点:大问题转化为小问题,可以减少代码量,同时代码精简,可读性好;

缺点:就是递归调用浪费了空间,而且递归太深容易造成堆栈的溢出。

迭代

优点:代码运行效率好,因为时间只因循环次数增加而增加,而且没有额外的空间开销;

缺点:代码不如递归简洁
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-15 14:53:03 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-15 14:53:38 | 显示全部楼层    本楼为最佳答案   
(1)定义:

程序调用自身称为递归。

利用变量的原值推出新值称为迭代。

(2)优缺点

递归

优点:大问题转化为小问题,可以减少代码量,同时代码精简,可读性好;

缺点:就是递归调用浪费了空间,而且递归太深容易造成堆栈的溢出。

迭代

优点:代码运行效率好,因为时间只因循环次数增加而增加,而且没有额外的空间开销;

缺点:代码不如递归简洁
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-15 15:05:14 | 显示全部楼层
迭代简单来讲,就是这样的:
  1. for i in range(10):
复制代码

也就是遍历一个可迭代对象。
递归就是套娃,比如:
  1. i = 5
  2. def func():
  3.     global i
  4.     print(i)
  5.     i -= 1
  6.     if i:
  7.         func()
复制代码

(这里我加上了条件,防止死递归)
可以发现,递归就是在函数中调用函数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-15 16:40:35 | 显示全部楼层
禁止套娃
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 16:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表