帮帮文库

返回

二项堆和Fibonacci堆的分析与实现 二项堆和Fibonacci堆的分析与实现

格式:word 上传:2022-06-25 16:35:45

《二项堆和Fibonacci堆的分析与实现》修改意见稿

1、“.....那么为什么偶数个的时候要递归往上删除因为度数为的二项树在层共有,个结点。如果不进行级联剪枝操作的话,我们可以发现删除几个节点后树的形状就会显得十分凌乱毫无章法。但是如果进行了级联剪枝,在偶数个结点时进行级联剪切时,原来是减少两个结点关键字后,变为由于二项式是对称的,因此通过级联减枝的技术可以保证类使二项式减少个数量级,维持二项树的形状删除个结点删除操作的过程比较简单,首先减小对应节点的关键字值直到所指向节点的关键字值小,此时对应节点成为,然后调用弹出操作函数即可。伪代码如下,∞第章实现细节二项堆代码结构二项堆涉及到的数据结构主要包括和,具体定义如下主要涉及到的函数如下,此函数分配个结构体指针并且初始化然后返回对应的结构体指针。,此函数接受两个结构体指针作为参数,将对应的两棵二项树合并并且返回结果树的根节点指针。,此函数接受两个结构体指针作为参数......”

2、“.....并将结果主链的头部指针返回。,此函数接受两个结构体指针作为参数,内部调用合并主链,然后对主链上相同度数的节点进行进步合并。,此函数改变个节点的关键字值,并且通过递归的父节点比较关键字值来维持堆的有序结构。,此函数返回二项堆的节点数目。,此函数返回个布尔值来判定对应的二项堆是否为空。,此函数删除个给定的节点,通过进步的操作来保证二项堆的数学性质和结构。,这些函数对堆的基本操作进行封装,提供抽象的接口。,二项堆的测试函数,不包括效率测试,主要是对接口函数的测试。斐波纳契堆代码结构斐波那契堆涉及到的数据结构主要包括和,具体定义如下项堆解决了离散空间上面堆的实现问题,与二叉堆有相同的渐近时间复杂度。斐波纳契堆在不涉及删除操作的情况下有的均摊时间复杂度,无疑是对效率的极大提升。但是相对而言斐波纳契堆有着复杂的数据结构和算法是其主要的不足。如果能够开发种堆的算法......”

3、“.....而这也是我们要努力的目标。致谢首先,我要诚挚地感谢我的导师陈欢老师,本论文是在陈欢老师的悉心指导下完成的,从论文的构思准备编写到最后的定稿,都得到了陈欢老师的大力支持和热心指导。在论文的编写过程中,陈欢老师提出了许多的宝贵意见和建议,使我得到了很大的启发。在此,我要向陈欢老师致以衷心的感谢,同时我也要感谢我的些同学和朋友,他们在我做毕设的过程之中给我许多帮助,同他们讨论问题使我受益匪浅。最后,感谢各位评审老师在百忙之中抽出宝贵的时间对本论文进行审阅和参加答辩。在此,对各位参加审阅和答辩的老师表示感谢,参考文献,算法导论第二版,机械工业出版社。编程珠玑第三版,人民邮电出版社。第二版机械工业出版社。严蔚敏吴伟民数据结构清华大学出版社。数据结构,算法与应用机械工业出版社。主要涉及到的函数如下......”

4、“.....函数返回对应结构体的指针。,此函数接受两个结构体指针,将两个无序的二项树合并,并且返回对应结果树的根节点。,此函数改变个节点的关键值,同时经过级联剪切的操作的维护斐波那契堆的数学性质和结构。,此函数接受两个结构体指针,将对应的斐波纳契堆合并,返回合并后的堆的根节点。,此函数接受个结构体指针,通过遍历根链得到根链长度的最大度数,通过这些计算要用到的临时数组的大小。,此函数实现级联剪切的操作。实现对斐波那契堆的基本操作进行封装,提供抽象的接口。,斐波纳契堆的测试函数,不包括性能测试,主要是对,和操作进行测试。其他函数代码还涉及到的其他函数比较函数实现的操作。在二项堆中为,在斐波纳契堆为。遍历函数用于对根链进行遍历,同时格式化输出根链上的节点的关键字值和度数。在二项堆中为,在斐波那契堆中为。报错函数通过的重定位,将内存不足的情况写入的缓冲区,同时进行操作。在代码中为......”

5、“.....计算出两种操作所耗费的挂钟时间。重复这个这个操作多遍,取平均值。在代码中实现为。第章性能测试我们对二项堆和斐波那契堆的和操作进行测试。我们先利用函数生成大量的随机数,然后对数据进行和操作,并且利用函数来测试相应操作的挂钟时间,并将结果用去除得到最后的时间。重复这样的测试多次取平均值。在具体代码中对应的测试函数为。它有个参数,分别是即实验重复次数,即表明是对二项堆还是对斐波那契堆进行测试,或者以比较模式进行测试。全局变量为测试数据规模。通过对个数据进行测试的实验,我们得到下列结果。上面的数据对于的是对二项堆,斐波纳契堆和在比较模式下通过对数据进行次重复测试的结果。其中代表操作耗费的挂钟时间,代表操作耗费了几秒代表操作耗费了几秒,代表次实验总共耗费的时间。总结与展望数据结构和算法设计是门创造性的学问......”

6、“.....面对日益增加的数据处理规模,常规的数据结构和算法无法满足运行时间的要求。因此精心设计的数据结构和实现算法成为解决问题的利器。从计算机科学诞生伊始,数据结构和算法设计也随之产生,代代的计算机科学家,工程师为了解决问题提出了许许多多的精巧的数据结构和算法设计。堆作为种应用广泛的数据结构,得到许多人研究。人们不停的在探索这种抽象数据结构更好的实现算法。本文在认真学习二项堆与斐波那契堆的数据结构,数学性质和实现算法的基础上给出了具体的代码实现并且对效率进行了分析。用,例如最短路算法的快速实现,最优编码的哈夫曼树实现,优先级调度算法等等。堆的分类从物理的角度来讲,堆的节点在内存中可以连续分布也可以分散分布,前者是二叉堆,后者是二项堆和斐波纳契堆。二叉堆的实现相对简单,运行时间的常数因子也小,但是同时也存在些不足之处。由于二叉堆要求连续的存储空间......”

7、“.....我们无法确定应该分配的内存大小。通常这种情况下我们倾向于分配个较大的内存,但是极有可能造成内存的浪费,同时当数据规模超过分配的内存时还要重新分配内存,其中就要涉及较大的数据复制操作,这对运行效率是极其不利的。另外种情况下及时我们事先知道数据规模的大小,但是由于内存有限无法分配出足够大连续的内存空间。由于这两个原因使得二叉堆的应用得到限制,许多人开始探索离散空间上实现堆的方法。二项堆和斐波纳契堆是离散空间上堆的实现,克服了二叉堆要求分配连续内存的缺点同时维持了相关操作的高效性。在渐近时间复杂度上二项堆和二叉堆的时间复杂度是相同的。斐波纳契堆由于采用了循环双向链表的数据结构使得在不涉及删除操作的情况下时间复杂度为,从而大大提高时间效率。不过由于数据结构相对复杂,斐波那契堆的常数因子较大,在较小规模的数据上的时间优势并不明显......”

8、“.....同时比较了两种数据结构的时间效率。本文主要内容本文结构内容安排如下第章介绍数据结构的重要性同时引出堆这重要数据结构。同时给出堆的下基本认识。同时在本章中给出本文的结构安排。第二章介绍二叉堆的结构,数学性质和具体的操作。第三章介绍二项堆的结构,数学额性质和基本操作的相关算法。对二项堆的效率分析有个比较清楚的认识。第四章介绍斐波纳契堆的数据结构和基本操作的算法实现。第五章介绍具体的代码实现和性能分析。第六章总结与展望第章二叉堆二叉堆定义二叉堆是种应用广泛的堆结构。二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足堆特性父节点的键值总是大于或等于小于或等于任何个子节点的键值,且每个节点的左子树和右子树都是个二叉堆都是最大堆或最小堆。当父节点的键值总是大于或等于任何个子节点的键值时为最大堆......”

9、“.....二叉堆存储二叉堆在内存中连续存储使用数组表示。例如,假设根节点在数组中的位置是,则第个位置的左右子节点分别在和的位置,其父节点处于的位置。因此,第个位置的左右子节点分别在和,第个位置的左右子节点分别在和,以此类推。二叉堆的连续存储性质使得我们能够在时间内迅速定位父节点和子节点的位置。上图反应了二叉堆的逻辑结构和在内存中的物理结构。二叉树基本操作二叉堆可以在时间内进行插入节点,删除节,改变节点的值等基本操作,同时能够在时间内获得最小值。第章二项堆二项树定义二项树是种通过递归定义的有序树,可以由以下定义得到度数为的二项树只包含个结点。度数为的二项树由两棵度数为的二叉树构成,其中的棵二叉树的根节点成为另棵二叉树的最左孩子节点。上图反应了怎样由两棵度数为的二叉树构造度数为的二叉树。上图中的二叉树从左至右度数分别为至......”

下一篇
温馨提示:手指轻点页面,可唤醒全屏阅读模式,左右滑动可以翻页。
二项堆和Fibonacci堆的分析与实现.doc预览图(1)
1 页 / 共 27
二项堆和Fibonacci堆的分析与实现.doc预览图(2)
2 页 / 共 27
二项堆和Fibonacci堆的分析与实现.doc预览图(3)
3 页 / 共 27
二项堆和Fibonacci堆的分析与实现.doc预览图(4)
4 页 / 共 27
二项堆和Fibonacci堆的分析与实现.doc预览图(5)
5 页 / 共 27
二项堆和Fibonacci堆的分析与实现.doc预览图(6)
6 页 / 共 27
二项堆和Fibonacci堆的分析与实现.doc预览图(7)
7 页 / 共 27
二项堆和Fibonacci堆的分析与实现.doc预览图(8)
8 页 / 共 27
二项堆和Fibonacci堆的分析与实现.doc预览图(9)
9 页 / 共 27
二项堆和Fibonacci堆的分析与实现.doc预览图(10)
10 页 / 共 27
二项堆和Fibonacci堆的分析与实现.doc预览图(11)
11 页 / 共 27
二项堆和Fibonacci堆的分析与实现.doc预览图(12)
12 页 / 共 27
二项堆和Fibonacci堆的分析与实现.doc预览图(13)
13 页 / 共 27
二项堆和Fibonacci堆的分析与实现.doc预览图(14)
14 页 / 共 27
二项堆和Fibonacci堆的分析与实现.doc预览图(15)
15 页 / 共 27
预览结束,还剩 12 页未读
阅读全文需用电脑访问
温馨提示 电脑下载 投诉举报

1、手机端页面文档仅支持阅读 15 页,超过 15 页的文档需使用电脑才能全文阅读。

2、下载的内容跟在线预览是一致的,下载后除PDF外均可任意编辑、修改。

3、所有文档均不包含其他附件,文中所提的附件、附录,在线看不到的下载也不会有。

  • Hi,我是你的文档小助手!
    你可以按格式查找相似内容哟
DOC PPT RAR 精品 全部
小贴士:
  • 🔯 当前文档为word文档,建议你点击DOC查看当前文档的相似文档。
  • ⭐ 查询的内容是以当前文档的标题进行精准匹配找到的结果,如果你对结果不满意,可以在顶部的搜索输入框输入关健词进行。
帮帮文库
换一批

搜索

客服

足迹

下载文档