您现在的位置是:论文诗词网 > 成语词典 > 网络课程 >

递归程序设计的艺术(C语言)

2022-03-31 17:16网络课程 人已围观

目的

如果把程序员比做士兵,那么高级程序设计语言中的条件、循环、顺序、结构、类等等就像是是士兵手中的步枪,而递归就像是小钢炮,它的威力和效果比一般武器要强多了。

用递归方法编程出来的程序一般都很简洁、精炼。有时寥寥几条语句就能完成一个很困难的、甚至有些不可思议的功能。


比如如上图所示的河内塔问题,它是很多高级语言和数据结构教材中的第一个递归问题,相应的递归程序如下图所示:

只需9行代码就解决了困难的河内塔问题,实现把N个圆盘从A杆挪到C杆,且任何大圆盘都不会叠放在小圆盘之上的目的。

相信多数第一次看到这个程序的人都不能很快理解这个程序。这个程序妙就妙在它的简短,简短得甚至让人怀疑它是不是有这么强大的功能。因为即使是人脑思考河内塔问题,那也不是很容易的。可是事实证明它就有这么强!

奥妙就在于递归。递归就像美女,追求的人多。但是能够追到手的人不多。这是因为很多人仅仅凭自己的感觉进行递归编程,并没有理解递归背后的数学原理和实质。造成的结果就是在该用递归的时候不知道用,或者不敢用,或者用得不对,在不该用递归的时候却错误地使用了递归。本课程的目的就是帮助大家理解和掌握递归背后的数学原理和实质,从而掌握递归的规范步骤、递归的优点和限制。

拥有递归就像战士有了步枪的同时还拥有了小钢炮。程序员的水平和能力提高了不是一点点。你只需听45分钟的课就能拥有这样的能力。当然,前提是:你必须会简单编程,掌握了常用的语法,自学或者专业学习过最基本的计算机编程和高级语言的知识。更重要的是,你得有较浓厚的编程兴趣。

课程特色

作为这门课程的老师,我从来不向学生简单灌输计算机理论和数学知识。我认为,递归也好,其他计算机理论也好,数学也好,都是有生命的、美好的东西。我们不能 暴殄天物,粗暴对待如此美好的事物。我会准备一些简单浅显的例子,通过例子让你理解递归背后的实质及其数学原理。然后归纳出递归的规范步骤,理解递归的优点和限制。递归就在你的心中,我只不过帮你把它唤醒了。
 

站点信息

  • 文章统计111294篇文章