首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 62 毫秒
1.
递归算法非递归化的一般规律   总被引:8,自引:0,他引:8  
尽管递归算法具有结构简练、清晰、可读性强、正确性容易得到证明等优点,但递归算法在执行过程中会耗费太多时间和空间。为了追求算法的时空效率,特别是使用不支持递归的程序语言的情况下,必须将递归算法转化为非递归算法,问题才能得到有效解决。为此,给出了递归算法转化为非递归算法的一般方法,并以Hanoi塔问题、二叉树的中序遍历问题为例进行了详细地分析。  相似文献   

2.
在BASIC语言中没有“过程”的概念,不能使用递归。本文分析了一个著名的递归问题——Hamiv塔问题的求解过程,在BASIC语言中利用数组与子程序实现了递归算法。  相似文献   

3.
给出了程序设计中两种递归问题的非递归算法实现过程,并与递归算法进行比较,结果表明,非递归算法在时间复杂度与空间复杂度两项指标上均优于递归算法,且不使用系统栈,执行过程不依赖于函数或过程的重复调用,有更大的灵活性,可以应用在程序与软件设计中.  相似文献   

4.
递归是算法设计中常用的方法之一,利用递归可以得到很多高效算法.递归算法由初始情况和递归部分组成,一般可以采用递归方程表示.分析了递归方程常用解法,比较了各个解法的区别及使用范围,并研究了如何表示递归方程对应的算法复杂度的渐进阶.  相似文献   

5.
本文应用结构化程序设计思想和递归算法;对初等函数的导函数符号求法,用PASCAL语言设计了一计算机算法。为了适应递归,对初等函数的结构作了规范处理,给出了三个互相递归调用的子过程。利用这三个过程,给出了示意性程序。  相似文献   

6.
递归程序设计基于分治法和全息的思想方法,将大规模系统中的复杂问题转化为小规模系统问题进行求解(如Hanio塔问题)。递归算法是一种自然且合乎逻辑的解决问题的方式,但其执行效率通常比较差。因此,在求解某些问题时,常采用递归算法来分析问题,用非递归算法来求解问题;递归程序设计在算法设计中具有重要的理论意义和实用价值,但其在C语言、数据结构、程序设计教学上是难点,主要是思想方法的不同。介绍了在教学中通过一组例题从简单到复杂的程序实例,引导学生由浅入深地掌握递归程序及搜索的编写技巧,取得较好的效果。  相似文献   

7.
吴川  江海宁 《科技资讯》2010,(31):16-16,18
递归算法是程序设计中一种重要的方法,使用递归方法结构清晰,可读性强,而且容易用数学归纳法来证明算法的正确性,因此它为算法设计、调试程序带来很大方便。本文针对学生在学习程序设计课程时对递归算法难以理解及掌握等情况,阐述了递归算法的本质、分类、计算思维方式以及如何提高递归算法在大规模问题中的时间效率。  相似文献   

8.
非线性数据结构递归问题非递归算法的循环不变式的开发一直是形式化开发的难点.研究二叉树类非递归算法的推导及形式化证明方法,对二叉树排序算法进行推导,得出非递归Apla(Abstract Programming Language)算法及其精确而简单的循环不变式,然后用Dijkstra-Gries标准程序证明法证明算法的正确性,最后使用PAR平台C++程序自动生成系统自动生成C++代码.实例的实验结果简化了算法程序的推导和证明过程,对递归问题非递归算法的循环不变式的探测具有一定的借鉴意义,而且对非线性数据结构算法程序的推导及形式化证明具有指导意义.  相似文献   

9.
针对扩展递归技术的局限性,本文提出基于树的递归算法分析技术。借助于分析树,可直观地、清晰地描述递归算法的分析过程,从而有效地解决递归算法时间复杂性的分析问题。  相似文献   

10.
为提高柔性工作流对业务环境不确定性和多变性的响应能力,提出了一种基于流程模式的工作流动态规划技术.采用流程模式的知识表示方法描述业务领域专业知识,工作流建模阶段不确定的执行过程或执行因素用一个特殊的"目标活动"来表示;通过在流程执行过程中实时获取目标活动的上下文信息,实现流程执行过程中的实时规划,使得流程的执行过程能够更加实时地反映外界影响因素的变化;给出了基于动态规划柔性工作流的结构化设计和上下文数据的形式化定义,进而设计了目标匹配的流程规划算法,该算法支持流程的递归规划.最后,给出了一个"接收对象不明确"的工作单分发流程实例,表明了动态规划的优势,并与其他支持工作流柔性的方法进行了比较.  相似文献   

11.
排序是程序设计中常用的一种操作,递归是一种重要的程序设计方法.探析了几种常用的排序算法在链式存储结构上的递归实现,包括基本思想、C语言函数源代码及详细注释,并与顺序存储结构上的算法实现进行了性能比较,以便于学习者熟练掌握链式存储结构上的递归程序设计,并为排序算法选择合适的存储结构提供借鉴.  相似文献   

12.
采用递归方法设计算法具有较高的开发效率和良好的可读性,但递归层次多到一定程度将耗尽系统内存资源,因此递归算法的实用性较差。通过分析递归算法的特性和实现机制,简要介绍了实现递归消解的几种方法,重点研究了搜索二叉树中最长路径的递归算法,给出C语言编写的利用堆栈结构和循环结构实现的非递归模拟算法,并给出递归消解前后算法的时间效率对比。  相似文献   

13.
设计并实现了一个PAR方法的在线自学系统.利用Web服务(Web Service)和多媒体数据库技术,将使用PAR方法开发算法程序设计的基本概念、算法设计语言Radl、抽象程序设计语言Apla以及设计和推导算法程序的方法学形象生动地呈现给学习者.最后介绍了利用算法程序设计支撑平台生成可执行算法程序的过程,以及该算法程序运行产生的结果.  相似文献   

14.
目前计算机程序设计教材中很少提到递归调用算法,原因多为程序设计中递归调用算法十分抽象,以致广大学生及编程人员难以理解,而递归调用算法在程序设计中又显得十分重要,本文应用实例说明递归调用算法内部执行过程,以便广大学生及编程人员真正理解并掌握递归调用思想,从而利用递归调用算法解决实际问题。  相似文献   

15.
递归是一种算法设计的策略,是程序设计和描述算法的一种有力工具,在程序设计中被广泛采用,尤其在数值计算、数据结构、人工智能、算法设计与分析及其他领域应用广泛。通过分析递归程序设计的数学模型归纳法讨论了递归程序设计的一般思想与方法、步骤及需要解决的关键核心问题。最后,通过几个可以采用递归实现的经典算法,详细阐述了通过分析问题,找到递归实现的两个基本核心问题,即递归表达式和递归终止的条件,并以此来编写递归调用的函数。  相似文献   

16.
随着多媒体和计算机技术的迅速发展,数字图像处理技术得到了越来越广泛的应用.重点研究了具有非负和有限支持域的递归逆滤波器的盲图像复原算法(即NAS-RIF算法),并在此基础上研究了一种通过高阶统计量HOS去除噪声的方法,同时在算法的迭代过程中采用图像分割技术进一步精确图像的目标支持域.最后对所提出的方法进行了仿真,取得了...  相似文献   

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

18.
“分而治之”是算法设计中普遍使用的技术,本论述了“分而治之”方法.以及通过对实例的分析,讲述了“分而治之”方法怎样与递归方法结合进行算法设计。  相似文献   

19.
递归是数学和计算机科学中的一个基本概念,许多复杂问题的求解都可以用递归算法去解决.本文通过具体实例,讨论了一些问题的递归算法实现,并对递归算法进行了进一步的探讨。  相似文献   

20.
介绍一种两维矩形毛坯带排样问题的改进启发式递归算法,它基于递归结构和分支定界技术.首先初始化板材作为一个块,考虑目前的块,算法选择一个毛坯,将毛坯放在块的左下角,然后用水平或竖直的剪切线将未使用空间分为两个更小的块,便于进一步递归求解.使用上下界来去除无用的分支,缩短运算时间.将该算法和遗传算法相结合,先通过遗传算法确定所有矩形毛坯较优的排放顺序和排放方式,然后使用递归排样生成排样图,通过比较不同的矩形排放序列对应的板材利用率,最终得到较优的排样方案.测试数据表明了该启发式优化算法的有效性.  相似文献   

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

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