如何理解递归(一)

递归是程序运行时的一种现象,也是解决某些特定问题时较迭代算法来说更自然更优雅的代码组织方式。作为程序员工作了多年后,我发现一个能不能理解好递归,能不能用递归来解决问题是区分程序员和非程序员,甚至于区分好程序员和差程序员的试金石。很多人通过学习掌握了某些语言的语法,也能写一些代码,但是一遇递归就头大。我曾经也是经历过这样的一段时间,所以希望这篇文多少能对这样的人有点帮助。

谈到递归,程序设计课程老师可能会说递归就是「函数自己调用自己」。比如下面的代码段:

void foo()
{// 自己调用自己就是递归foo();
}

我们知道这个函数要是运行起来,除了让你的程序报出一个「堆栈溢出」的错误外,其他什么作用也没有。在某种程度上说,我们的大脑就是一个计算机。当我们尝试去理解「自己调用自己」这句话时,大脑也会陷入一个无限的递归过程里,然后「轰」的一声「堆栈溢出」了,所以也就无


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部