首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 15 毫秒
1.
递归算法的非递归化实现   总被引:14,自引:0,他引:14  
由递归算法直接转换成相应的非递归算法能有效地提高程序的执行效率,本文列出了几类递归算法的非递归化实现方法,分别说明了这几类递归算法的特点及算法实例,并给出了相应的非递归算法。  相似文献   

2.
递归算法的非递归实现   总被引:5,自引:0,他引:5  
递归以其算法简单清晰、可读性强及易实现而具有很好的理论,但在实际应用时,递归过程用到的大量数据不管有用无用都需要保存,而当递归层次多到一定程度,将耗尽系统内存资源,因此很少在真正的实际应用中使用,实用性较差。如果可以设计出一种既保持递归算法简单、清晰、易实现的优点,双能避免递归算法极耗内存缺陷的新型递归算法,将是一件十分有意义的事情。  相似文献   

3.
杨明 《微型计算机》1996,16(6):51-52
本文对递归的非递归算法进行了研究,并给出了由递归到递推的抽象算法,并说明了该算法的具体运用。  相似文献   

4.
递归做为一种算法设计思想在求解实际问题和程序设计中广泛应用,采用递归设计的算法具有思路清晰、易于描述复杂问题等优点。文中对递归算法的理论依据、设计思想、应用、递归的内部执行过程做了较为全面的探讨,并以火车进站问题为例,重点分析了如何根据问题的递归表达函数扩充为递归算法。同时,对递归的非递归化作了较为深入的分析和探讨,并给出了实例源程序。理论分析和实践证明,在具体应用问题中,通过寻找问题对应的递归表达函数,可以容易和准确地设计出求解的递归算法,提高算法设计效率。  相似文献   

5.
二叉树遍历递归算法非递归化的讨论   总被引:3,自引:0,他引:3  
尽管递归算法具有结构简炼、清晰、可读性强等优点,但递归算法在执行过程会耗费太多的时间和空间,为了追求算法的时空效率,必须将递归算法转化为非递化算法,问题才能得到有效解决,本文讨论了在递归算法执行过程中栈的变化和给出了改进的非递归化算法。  相似文献   

6.
递归算法的主要作用是把复杂问题分解为简单问题来求解。对于某些复杂问题(例如hanio塔问题),递归算法是一种自然且合乎逻辑的解决问题的方式,但是递归算法的执行效率通常比较差。因此,在求解某些问题时,常采用递归算法来分析问题,用非递归算法来求解问题;另外,有些程序设计语言不支持递归,这就需要把递归算法转换为非递归算法。  相似文献   

7.
为了培养学习编程的逆向思维,运用分治思想的递归算法提高解决问题的能力,理解分治和递归的关系,掌握递归算法解决问题的条件和原理是十分必要的。从提出问题、分析问题、抽象问题的特征、解决问题和分析递归算法的局限性的过程,运用比较法比较迭代与递归之间的关系,结合具体问题,对理解递归算法解决问题给出了有效的方法。用分治的递归方法求解问题,其结构简单,可读性强,但是递归算法理解起来有一定难度,研究了递归算法的特征、递归与分治之间的关系、递归与迭代之间的关系,根据时间和空间复杂度,给出了递归算法的深度建议。实践的结果证明,采用这样的方式,能够帮助读者理解逆向思维和分治思想的本质,提升运用递归算法解决生活和学习中的问题的能力。  相似文献   

8.
基于状态机的递归算法非递归化框架   总被引:1,自引:0,他引:1  
由递归程序转换到非递归程序可以避免栈内存溢出问题并可以提高算法效率。借助状态机编程的思想,提出一种递归到非递归转换的框架。将函数的调用和返回过程看作是状态的转换,并将递归过程模拟为"进入函数"、"进入递归点"、"从递归点返回"等状态。实验中,将几种具有代表性的递归算法转换为非递归算法,从转换后代码可以看出,提出的框架与"while-while"和"while-if"等常见框架相比,具有结构清晰、代码简洁和转换过程程序化强的优点。  相似文献   

9.
程序设计中没有用到循环或递归算法,很难解决一些实际问题。本文以斐波那契(Fibonacci)数列为例对递归与循环算法的时间复杂度作了比较、分析。  相似文献   

10.
虽然递归算法具有结构简练、清晰、可读性强等优点,但有时受执行效率和程序设计语言的限制,必须实现递归向非递归的转换.提出一个通用的算法框架实现一般递归算法向非递归算法的转换.该框架产生的非递归算法没有标号,适用于大多数程序设计语言.结合几个典型的实例说明该框架的应用方法和有效性.  相似文献   

11.
范明 《软件学报》1994,5(1):56-61
本给出拓广的左线性递归变换算法并证明其正确性。拓广的左线性递归中可以包含一个或多个IDB谓词,它是左线性递归的一般化和左线性递归计算算法一样,本提供的算法遵循魔集的模式:首先改写规则,然后用半扑质的自底向上算法计算新规则,算法的有效性也在本作简略讨论。  相似文献   

12.
本文根据递归算法的定义,对其在C语言程序设计中的应用进行了阐述,通过对递归的内部实现过程的描述,对递归的使用进行评价,说明递归在程序设计中具有一定的使用空间.  相似文献   

13.
闫林 《微机发展》1997,7(4):6-8
归纳定义是定义某些概念时常用到的一种定义方法,但是,什么叫做“归纳定义”并没有严格的说法,本文从代数系统的观点出发,对归纳定义进行了严格的数学定义。递归算法是编程时经常使用的一种算法设计方法,其思想就是算法本身调用自己。本文对归纳定义与递归算法之间的联系进行了深入的讨论和研究,结论是:利用归纳定义所定义的概念一定可以利用递归算法进行判定;反之,由递归算法可以判定的概念一定能够进行归纳定义。  相似文献   

14.
递归算法在数据结构课程中既是重点又是难点,对递归算法理解和把握直接决定了很多算法的理解。该文通过对递归的概念,举例说明利用递归求解问题的步骤以及通过分析二叉树的前序遍历算法来剖析递归的执行过程,最后给出了递归的直观理解。  相似文献   

15.
递归算法参数的设置是至关重要的,基于递归算法的特征,提出一种通用的递归算法的设计模式.在此基础上进一步讨论参数的设置的方式及其效果,为研究递归算法提供有效的解决方案,具有很强的实用性,并结合经典实例给以说明。  相似文献   

16.
使用非递归方式实现递归问题的算法程序,不仅可以节省存储空间,而且可以极大地提高算法程序的执行效率。本文给出了两种将递归问题的递归算法转换成非递归算法的有效方法,并以具体实例加以说明。  相似文献   

17.
递归问题的非递归实现方法的应用研究   总被引:1,自引:0,他引:1  
使用非递归方式实现递归问题的算法程序,不仅可以节省存储空间,而且可以极大地提高算法程序的执行效率.本文将递归问题分成简单递归问题和复杂递归问题;简单递归问题的非递归实现采用递推技术加以求解,复杂递归问题则根据问题求解的特点采用两类非递归实现算法,使用栈加以实现.  相似文献   

18.
递归是程序设计中一种重要的思想方法。递归算法代码量小、求解思路清晰,解决复杂问题的方案优雅而简洁,但递归算法难以掌握。结合实例以工作团队的视角进行递归算法设计,提出首先保证正确设计递归算法然后再分析递归执行过程的教学思路,在教学实践中取得良好效果。  相似文献   

19.
递归算法参数的设置是至关重要的,基于递归算法的特征,提出一种通用的递归算法的设计模式,在此基础上进一步讨论参数的设置的方式及其效果,为研究递归算法提供有效的解决方案,具有很强的实用性,并结合经典实例给以说明。  相似文献   

20.
孟林  尹德辉 《福建电脑》2004,(1):12-12,46
利用递归可完美地解决许多问题,但如果不理解其递归调用的本质,则很难理解和写出递归算法,本文通过与机器接触最紧密的汇编语言来分析其本质,并通过本质的分析而探索到其非递归化的一般规律。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号