共查询到19条相似文献,搜索用时 78 毫秒
1.
基于状态机的递归算法非递归化框架 总被引:1,自引:0,他引:1
《计算机应用与软件》2018,(4)
由递归程序转换到非递归程序可以避免栈内存溢出问题并可以提高算法效率。借助状态机编程的思想,提出一种递归到非递归转换的框架。将函数的调用和返回过程看作是状态的转换,并将递归过程模拟为"进入函数"、"进入递归点"、"从递归点返回"等状态。实验中,将几种具有代表性的递归算法转换为非递归算法,从转换后代码可以看出,提出的框架与"while-while"和"while-if"等常见框架相比,具有结构清晰、代码简洁和转换过程程序化强的优点。 相似文献
2.
曹翊旺 《计算技术与自动化》1994,13(1):38-45
递归算法简单自然、结构清晰、易写易读、易于验证其正确性,但执行效率不高。因此,在程序设计中,通常对所要处理的问题先用递归算法加以描述,然后再将其改写成非递归算法。本文从四个方面论述了递归算法的模拟问题。 相似文献
3.
递归算法的非递归化实现 总被引:14,自引:0,他引:14
由递归算法直接转换成相应的非递归算法能有效地提高程序的执行效率,本文列出了几类递归算法的非递归化实现方法,分别说明了这几类递归算法的特点及算法实例,并给出了相应的非递归算法。 相似文献
4.
在数据结构的教学中,我们经常用到递归,例如广义表,二叉树等,但是在课本中讲到递归算法的非递归化却寥寥数语,并且很多学生也问到这个问题.该文针对这一情况研究递归函数的非递归化.该文根据是否是尾递归进行分类,重点讲解两种不同的非递归化方法,其中一种转换成循环来实现非递归化,但是对于复杂的非尾递归则使用栈来模拟系统栈的工作方... 相似文献
5.
6.
递归算法的非递归化研究 总被引:7,自引:0,他引:7
1 引言在工程实际中,有许多概念是用递归来定义的,数学中的许多函数也用递归来表达。一个递归算法的执行过程类似于多个函数的嵌套调用,只是主调函数和被调函数是同一个函数而已,在执行过程中,信息的传递和控制的转移必须通过栈来实现,这就导致空间耗费大,执行效率较低,尤其是当递归深度较深时,不但耗费的空间大而且执行的效率也相当低,这是递归算 相似文献
7.
二叉树遍历递归算法非递归化的讨论 总被引:3,自引:0,他引:3
尽管递归算法具有结构简炼、清晰、可读性强等优点,但递归算法在执行过程会耗费太多的时间和空间,为了追求算法的时空效率,必须将递归算法转化为非递化算法,问题才能得到有效解决,本文讨论了在递归算法执行过程中栈的变化和给出了改进的非递归化算法。 相似文献
8.
递归算法的非递归实现 总被引:5,自引:0,他引:5
孙涌 《计算机研究与发展》1995,32(11):1-7
递归以其算法简单清晰、可读性强及易实现而具有很好的理论,但在实际应用时,递归过程用到的大量数据不管有用无用都需要保存,而当递归层次多到一定程度,将耗尽系统内存资源,因此很少在真正的实际应用中使用,实用性较差。如果可以设计出一种既保持递归算法简单、清晰、易实现的优点,双能避免递归算法极耗内存缺陷的新型递归算法,将是一件十分有意义的事情。 相似文献
9.
汤亚玲 《计算机技术与发展》2009,19(11):85-88,93
递归做为一种算法设计思想在求解实际问题和程序设计中广泛应用,采用递归设计的算法具有思路清晰、易于描述复杂问题等优点。文中对递归算法的理论依据、设计思想、应用、递归的内部执行过程做了较为全面的探讨,并以火车进站问题为例,重点分析了如何根据问题的递归表达函数扩充为递归算法。同时,对递归的非递归化作了较为深入的分析和探讨,并给出了实例源程序。理论分析和实践证明,在具体应用问题中,通过寻找问题对应的递归表达函数,可以容易和准确地设计出求解的递归算法,提高算法设计效率。 相似文献
10.
由递归算法直接转换成相应的非递归算法能有效地提高程序的执行效率。本文针对一个企业材料截断应用案例.通过数学建模、算法分析与实现,证明效果很好。 相似文献
11.
赵东跃 《计算机应用与软件》2008,25(5):241-243
汉诺塔(Tower of Hanoi)问题是求在三个柱子之间移动圆盘的方法,它是递归程序设计的经典例子,已经证明其时间复杂度下限是O(2n),空间复杂度是O(n),实际使用时很容易溢出.给出汉诺塔问题的两个非递归算法:解集递推法和解集树法.解集递推法的时间复杂度和空间复杂度都是O(2n),该算法空间复杂度很大,无法实际使用,提出该算法的目的是为了引出解集树法.解集树法可以计算出指定的任意一步移动方法,时间复杂度和空间复杂度分别是O(n*2n)和O(1).并证明了汉诺塔问题的空间复杂度下限是O(1). 相似文献
12.
本文提出正态分布条件下面向不同分布的多类问题基于Chernoff上界的特征选择优化迭代算法.该算法由两重迭代组成首先在设定的原始空间和特征空间Chernoff参数s条件下,通过解矩阵方程的迭代算法求得变换矩阵的最优解;然后,在变换矩阵确定的特征空间中搜索最佳的参数s使错误概率上界最小;最后采用折半法修正设定的Chernoff参数s及其迭代步长.通过分析和实例可见基于Chernoff上界特征选择是面向不同分布的多类问题的最佳特征选择方法. 相似文献
13.
针对MCNP输入文件结构复杂、几何模型描述工作容易出错的特点,提出了基于UG模型文件(缺省扩展名为prt)的MCNP输入文件中几何模型自动生成的算法.使得可以在UG环境中构建对象模型后,用该算法自动生成对应于该模型的MCNP输入文件中的几何模型,大大地提高了MCNP输入文件的制作效率. 相似文献
14.
Cholesky分解递归算法与改进 总被引:10,自引:0,他引:10
陈建平 《计算机研究与发展》2001,38(8):923-926
递归算法是计算稠密线性代数的一种新的有效方法。递归产生自动、变化的矩阵分块,能充分发挥当今分级存储高性能计算机的效率。对Cholesky分解递归算法进行了研究,给出了算法的详细推导过程,用具有递归功能的Fortran90实现了算法,并通过矩阵元素顺序重排的方法,进一步提高了递归算法的运算速度。研究产生的算法比目前常用的分块算法快15%-25%。 相似文献
15.
陈建平 《数值计算与计算机应用》2004,25(4):315-320
§1.引言 以LU分解, Cholesky分解等为代表的线性代数问题的数值计算在现代科学研究和工程技术中得到广泛应用.随着计算机技术的发展,实现这些线性代数数值计算的计算机算法和软件也在不断发展.目前,具有多级存储结构的高性能RISC计算机已占据了数值计算领域的主导地位. RSIC处理器的运算速度非常快,它们与存储器之间的速度差距很大.计算机的性能能不能充分发挥,多级存储结构与高缓能否得到有效利用成为关键.为此,现行的 相似文献
16.
本文提出了把任意n维嵌套循环算法映射和划分到2维固定大小的Systolic阵列的一种自动设计方法,由于考虑了数据相关性,运用该方法产生的VLSI算法的执行时间少,而且不会引起时空冲突。因为平面VLSI阵列容易构造,所以该方法有良好的可行性的实用性。 相似文献
17.
在数字控制器、数字滤波器的设计中,双线性变换是最常用的工具之一。但当系统的阶数较高时,实行双线性变换就比较繁琐。本文就双线性变换提出了适用于N阶系统的递推算法,并给出了利用递推算法的计算机辅助变换程序框图。 相似文献
18.
针对环型管道这种特定的网络结构,提出了一种基于单源环型管道水力计算的递推算法,该算法可直接计算出单源环型管道的流量分布.阐述了递推算法的数学依据,证明了递推算法的可行性和唯一性,并说明了将一般环型管道问题转化为单源环型管道问题的处理方法. 相似文献
19.
主要研究UML类图到XMLSchema模型的转换策略,以便快速开发基于XML文档信息管理系统。为了实现它们之间的转换,对UML类图转换成XML Schema的过程进行了分析和研究,解决了它们转换过程中所遇到的问题。基于这一思想,提出并实现了它们的转换算法,达到了在Internet平台上的数据共享和集成、缩短了某高校后勤管理系统研发周期的目的,取得满意的效果。 相似文献