1 / 9
文档名称:

汉诺塔问题递归算法与非递归算法比较.docx

格式:docx   大小:40KB   页数:9页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

汉诺塔问题递归算法与非递归算法比较.docx

上传人:资料分享 2019/5/16 文件大小:40 KB

下载得到文件列表

汉诺塔问题递归算法与非递归算法比较.docx

文档介绍

文档介绍:汉诺塔问题递归算法与非递归算法比较摘要:汉诺塔问题是一个古典数学问题,对于给定的盘子数量及每步移动盘子次序是确定的。因此,只要能够确定盘子移动的规则,就可以通过计算机程序加以实现。递归算法虽然代码简单,但对于初学者而言,理解其内涵存在困难,且算法执行效率不高。提出一种基于非递归思想的移动方向判断算法解决汉诺塔问题,通过与递归算法执行时间比较,提出的判断移动方向算法执行效率更高,且算法思想相对更简单、更容易理解。关键词:汉诺塔问题;递归算法;非递归算法;移动规律;算法效率DOIDOI::TP312文献标识码:A文章编号:1672-7800(2018)008-0118-03英文摘要Abstract:,,butforbeginners,itsmeaningisnoteasytounderstand,,weproposealgorithmwhichisbasedonthenon-,wecandrawaconclusionthatjudgethealgorithmproposedinthispaperismoreefficient,anditsalgorithmicthinkingisrelativelysimple,:theproblemofhanoitower;recursivealgorithm;non-recursivealgorithm;movementrule;algorithmefficiency0引言汉诺塔问题是一个古典数学问题,也是计算机程序设计中用递归算法解题的经典例子。问题描述如下:有3个底座A、B、C可以用来存放盘子,有64个大小不等的盘子,初始时64个盘子都在A座上且大盘子在下、小盘子在上(编号由上到下依次为1~64),若让这64个盘子从A座移动到C座,在移动过程中需要满足以下条件:每次只能移动一个盘子;A、B、C3个底座上的盘子都需要保持大盘子在下、小盘子在上。要求给出每次移动盘子的具体步骤。1汉诺塔问题研究现状汉诺塔问题的研究已有大量成果。文献[1-3]通过递归算法加以实现;文献[4]给出关于移盘顺序与移盘规律的两个定理;文献[5]中涉及多处对递归算法转换为非递归算法的介绍,其中在介绍栈与二叉树相关内容时对递归与非递归结构之间转化以及在具体解决实际问题中有大量分析与具体实现过程;文献[6-7]研究了递归算法转换为非递归算法的过程