用汇编语言剖析递归算法的内在机理
2012-12-22火善栋杨旭东
重庆三峡学院学报 2012年3期
火善栋 杨旭东
(1.重庆三峡学院,重庆万州 404000)
(2.重庆安全技术职业学院,重庆万州 404000)
0 引 言
递归算法是计算机领域中一个很重要的算法,通过递归算法可以使很复杂的问题变得很容易解决,例如著名的汉诺塔问题,假若不采用递归算法的话可能无法解决,还有数据结构中树和图的遍历,通过采用递归算法从而使问题变得非常容易,当然递归算法在很多地方也有着很广泛的应用.
递归算法虽然编写起来比较容易,但在对递归算法的理解上,很多人却感到很抽象,在学习过程中往往对这类问题的执行过程不了解,对递归问题的认识不清楚,所以难以写出正确的递归程序,另外,在对递归算法的执行效率以及空间复杂度上很多人更是感到难以理解.这其中一个很重要的原因就是对递归算法的内在机理没有搞清楚,对递归算法中函数如何反复调用以及参数如何进行传递没有理解透彻.
由于高级语言把程序运行的内部细节都透明化了,所以想通过高级语言理解递归算法的内在运行机理是不可能的,但汇编语言是一门低级语言,其实质也是机器语言一对一的符号化,是指令级的语言,虽然通过汇编语言编写程序代码费时费力,但通过汇编语言可以看出程序运行的每一个细节.因此,这对理解递归算法无疑是一个很好的工具.
1 实例分析
本文通过一个很简单的递归算法的例子“斐波那契(Fibonacci)数列”来具体剖析递归算法的……
登录APP查看全文
