首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 703 毫秒
1.
递归算法是程序设计中的一种重要算法.用递归设计的程序结构比较清晰、简洁,但由于递归的设计思想比较巧妙,特别是对于规模较大的问题,掌握递归的实现过程和算法的复杂度分析并不是一件容易的事.因此,本文通过具体实例详细分析了递归算法的实现过程和复杂度,以此来加深对递归算法的进一步理解.  相似文献   

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

3.
递归算法或者递归程序是计算机及相关专业高校学生,在大学学习阶段必须掌握的一种程序设计方法。文章首先分析了高校学生在学习递归算法时遇到的难点,然后将递归算法进行不同角度的分类,由易到难详细剖析递归算法的设计思路,最后对递归程序的设计过程进行讲解和总结。文中还结合了实际教学案例,给出了递归算法的讲解和设计过程。  相似文献   

4.
递归是程序设计和描述算法的一种有力的工具,递归是在数值计算、程序设计、数据结构、人工智能及其它领域应用广泛。从递归的算法分析以及公式化方法,讨论了递归程序设计的一般思想。  相似文献   

5.
一种统一的二叉树结构遍历算法及其实现   总被引:2,自引:0,他引:2  
二叉树的遍历算法是树结构上的最基本算法,本文通过分析二叉树、二叉树的递归定义及遍历路径的特征,提出了一种针对二叉树遍历的递归及非递归统一算法.算法只需通过设置参数开关来控制遍历的方式.算法的实现代码精短,这为二叉链结构上的访问提供了一种统一便捷的实现机制,提高了代码的的复用效率.  相似文献   

6.
<正>递归是计算机科学中极为重要的概念,递归调用技术在数据结构中获得了广泛的应用,所以对递归的研究是计算机科学领域中的重要课题.目前,国内文献对其技术和实现由递归往非递归算法的转化都有大量的介绍,对于由非递归往递归算法的转化较少.本文就此讨论了非递归算法的重要性和到递归算法的转换主要解决方法.1 递归和非递归问题一个对象部分地由自己组成或按它自己定义的则称为递归的.递归在自然界是经常要遇到的,众所周知,递归程序设计方法和实际问题的自然表达式相近,又特别符合于人们的思想习惯,具有容易设计,程序清晰易读等优点.因此,在程序设计中使用递归是十分有用的工具.  相似文献   

7.
递归方法是一种从简单到复杂、从低级到高级的可连续操作解决问题的方法。递归算法具有结构简练、清晰、可读性强、正确性容易得到证明等优点。本文对递归方法的算法本质及适用的应用领域进行了较深入的探讨,希望大家对递归方法有个更深刻的认识。  相似文献   

8.
递归算法结构简单、清晰,可读性好,且易于验证其正确性,但浪费空间且执行效率低。因此,有时需要把递归算法转换成非递归算法。本文给出几种递归算法的特点及相应非递归算法实现的方法。  相似文献   

9.
递归作为一个较难掌握的内容在C语言书中占有很少篇幅,但它是一种非常有用的编程技术,在算法的描述中被经常采用,很多问题可以用递归算法求解.通过递归技术在二叉树的遍历、分治快速排序、多矩阵乘积方面的应用,有助于加深对递归深刻内涵的理解,以及对其应用技巧的掌握.  相似文献   

10.
1 引言递归程序设计方法,具有容易理解,容易设计,程序清晰易读等优点,作为程序设计的一种方法被广泛地使用,递归算法简明,且被众多的高级语言采用。然而,BASIC语言却不支持递归调用,某些递归描述的算法不能直接用它实现,虽然我们能够将一些递归过程转换成非递归过程,但对程序设计增加了很大的难度,文虽然提出了利用变量、字符串和数组等方法来解决递归问题,但对树结构问题进行检索、排序却难以实现.本文利用堆栈和栈指针的方法,实现BASIC子程序的递归调用更具有一般性。  相似文献   

11.
刘璐 《衡水学院学报》2009,11(4):37-39,43
二叉树的构造有多种方法,给出一棵二叉树的中序序列和后序序列,可以构造出这棵二又树,但一般采用递归算法.尽管递归算法具有结构简炼、清晰、可读性强等优点,但递归算法在执行过程会耗费太多的时间和空间,为了追求算法的时空效率,必须将递归算法转化为非递化算法,问题才能得到有效解决,本文设计了一个非递归算法,输入一棵二又树的中序遍历和后序遍历的结点序列,构造出该二又树,该算法对于一棵有n个结点的二又树,具有O(n)时间复杂度,是解决该问题的最优算法.  相似文献   

12.
黄津津 《教育探索》2008,(11):69-70
递归是计算机科学的一个重要概念,递归算法是程序设计中经常采用和有效的编程方法。用递归设计的程序结构比较简洁和清晰,但递归算法是较难理解和掌握的,因此,对递归算法的概念及结构进行深入分析,给出递归算法的设计方法,并通过对递归算法的内部实现过程的描述,可以帮助学生正确理解和应用递归算法解决实际问题。  相似文献   

13.
基于Clenshaw递归公式以及离散余弦自身的对称性提出任意长离散余弦变换(DCT)的一种并行递归快速算法,给出了算法的滤波器实现结构;与现有的其它递归算法进行了计算复杂度的比较分析,结果表明我们的算法运算量大大减少且计算的滤波器结构使算法非常适合大规模集成电路(VLSI)的实现.  相似文献   

14.
本文详细阐明递规算法的实质,给出一种递归算法向非递归算法转化的基本思路。  相似文献   

15.
Hanoi塔问题作为一个古典的数学问题,一直以来都是数据结构中递归算法的经典案例,在对Hanoi塔问题递归算法进行研究与分析后,提出一种占据内存更少,速度更快且实现简单的非递归算法.  相似文献   

16.
Hanoi塔问题是一个古典的数学问题,在C程序设计中常用递归算法去分析处理.但由于其递归算法中有两次递归调用,其程序执行的具体过程很复杂,很难直接看出其调用过程.本文通过运用堆栈概念深入分析Hanoi塔问题递归过程并修改其通用的C程序递归算法,使其递归算法程序执行过程具有直观易于理解性,对深入理解和灵活运用递归算法有积极意义.  相似文献   

17.
文中对递归的本质进行了探讨,以汉诺塔(TowerofHanoi)问题为例,对采用递归算法解决递归问题进行了简要分析,提出采用一种图示方式直观理解递归算法的执行过程,并用标记法编写程序打印出递归算法的顺序执行过程。  相似文献   

18.
文中对递归的本质进行了探讨,以汉诺塔(Tower of Hanoi)问题为例,对采用递归算法解决递归问题进行了简要分析,提出采用一种图示方式直观理解递归算法的执行过程,并用标记法编写程序打印递归算法的顺序执行过程。  相似文献   

19.
一、问题的提出一个对象部分地由自己组成或者是按它自己定义的则称为递归.在数学定义中递归是十分有用的工具,例如定义自然数:自然数:(a)1是自然数:(b)自然数的后继是自然数.递归的能力在于有可能用有限的语句来定义对象的无限集合.在计算机程序设计中也有这类情形:在定义一个过程或子程序时又引用该过程或子程序本身,这称为递归算法,用这种方法设计的程序称为递归程序.一般地,一个递归程序P可以表示为基语句S_i(不包含P)和P自身的组合β〔S_i P〕.由于递归算法会带来无终止计算的可能性,所以在递归程序中要考虑终止问题,这样递归程序一般表示为:P≡IF B THEN B〔S_i P〕  相似文献   

20.
本文从递归算法的外在形式出发,将递归算法划分为三种情形,依递归算法的执行情况,得出递归算法的非递归化的策略:递归调用在算法尾部(返回语句除外)的情形,从上而下地递归到底,找到递归的终止条件,然后从下而上地用循环实现递归算法的非递归化;递归调用在中间时,依递归算法的执行情况,利用堆栈进行现场的保护与恢复,从而实现递归算法的非递归化;递归调用在中间的特殊情形,依递归算法的执行,将其转化为递归调用在尾部的情形。  相似文献   

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

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