数据结构论坛

首页 » 分类 » 问答 » 数据结构与算法笔记递归
TUhjnbcbe - 2021/1/5 7:50:00
递归应该算是一种算法,维基给的定义是在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。递归一词还较常用于描述以自相似方法重复事物的过程。例如,当两面镜子相互之间近似平行时,镜中嵌套的图像是以无限递归的形式出现的。也可以理解为自我复制的过程。说白了就是自己调用自己。使用递归需要遵循三个定律:1、必须有一个基本结束条件(不然会进入死循环)2、必须能改变状态向基本结束条件演进(不然也会进入死循环)3、必须调用自身(不然就不叫递归了)当然递归也不是说可以无限进行下去,也是有递归限制的,也就是最大递归深度,python中默认的最大递归深度是,这个值也是可以更改的。有部恐怖电影倒是挺符合递归的条件,恐怖游轮。还有一部叫前目的地(意外发现一部电影),看看电影应该对理解递归会好很多吧。下面用递归实现斐波那契数列(指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……)。

deffibo(n):"""递归函数输出斐波那契数列"""ifn=1:##跳出递归条件returnnelse:return(fibo(n-1)+fibo(n-2))##返回调用自身总之,使用递归一定要注意跳出递归的条件,否则很容易进入死循环。

PS:日常linux命令

#复制最常用的命令cp及cp-r(-r参数递归复制)#rsync可视化复制文件时的进度rsync-avPh源文件目标文件##各参数可以通过--help查看,rsync不仅可以实现本地复制粘贴,同时也可以在本地及服务器间进行复制#类似window下的剪切命令就是mv了,这个命令也可以用来重命名#软连接和硬链接#软连接类似于window下的快捷方式ln-s源文件目标文件##目标文件可不写,默认使用源文件名建立软连接#硬链接(硬链接类似一种备份,硬链接文件之后引用指数变为2,软连接不会,不过硬链接应该用的不多)ln源文件目标文件预览时标签不可点收录于话题#个上一篇下一篇

1
查看完整版本: 数据结构与算法笔记递归