算法合集之《左偏树的特点及其应用》

算法合集之《左偏树的特点及其应用》

ID:14692291

大小:226.50 KB

页数:24页

时间:2018-07-29

算法合集之《左偏树的特点及其应用》_第1页
算法合集之《左偏树的特点及其应用》_第2页
算法合集之《左偏树的特点及其应用》_第3页
算法合集之《左偏树的特点及其应用》_第4页
算法合集之《左偏树的特点及其应用》_第5页
资源描述:

《算法合集之《左偏树的特点及其应用》》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、本资料由-大学生创业

2、创业

3、创业网http://www.chuangyw.com/提供资料左偏树的特点及其应用广东省中山市第一中学黄源河【摘要】本文较详细地介绍了左偏树的特点以及它的各种操作。第一部分提出可并堆的概念,指出二叉堆的不足,并引出左偏树。第二部分主要介绍了左偏树的定义和性质。第三部分详细地介绍了左偏树的各种操作,并给出时间复杂度分析。第四部分通过一道例题,说明左偏树在当今信息学竞赛中的应用。第五部分对各种可并堆作了一番比较。最后总结出左偏树的特点以及应用前景。【关键字】左偏树可并堆优先队列【目录】一

4、、引言2二、左偏树的定义和性质22.1优先队列,可并堆22.1.1优先队列的定义22.1.2可并堆的定义22.2左偏树的定义32.3左偏树的性质4三、左偏树的操作53.1左偏树的合并53.2插入新节点73.3删除最小节点83.4左偏树的构建83.5删除任意已知节点93.6小结12四、左偏树的应用134.1例——数字序列(Baltic2004)13五、左偏树与各种可并堆的比较155.1左偏树的变种——斜堆155.2左偏树与二叉堆的比较165.3左偏树与其他可并堆的比较16六、总结18在线代理

5、网页代理

6、代理网页

7、

8、http://www.dailiav.com减肥药排行榜

9、淘宝最好的减肥药

10、什么减肥药效果最好

11、减肥瘦身药

12、http://pigproxy.cn本资料由-大学生创业

13、创业

14、创业网http://www.chuangyw.com/提供资料【正文】一、引言优先队列在信息学竞赛中十分常见,在统计问题、最值问题、模拟问题和贪心问题等等类型的题目中,优先队列都有着广泛的应用。二叉堆是一种常用的优先队列,它编程简单,效率高,但如果问题需要对两个优先队列进行合并,二叉堆的效率就无法令人满意了。本文介绍的左偏树,可以很好地解决这

15、类问题。二、左偏树的定义和性质在介绍左偏树之前,我们先来明确一下优先队列和可并堆的概念。2.1优先队列,可并堆2.1.1优先队列的定义优先队列(PriorityQueue)是一种抽象数据类型(ADT),它是一种容器,里面有一些元素,这些元素也称为队列中的节点(node)。优先队列的节点至少要包含一种性质:有序性,也就是说任意两个节点可以比较大小。为了具体起见我们假设这些节点中都包含一个键值(key),节点的大小通过比较它们的键值而定。优先队列有三个基本的操作:插入节点(Insert),取得最小节点(Minimu

16、m)和删除最小节点(Delete-Min)。2.1.2可并堆的定义可并堆(MergeableHeap)也是一种抽象数据类型,它除了支持优先队列的三个基本操作(Insert,Minimum,Delete-Min),还支持一个额外的操作——合并操作:H←Merge(H1,H2)Merge()构造并返回一个包含H1和H2所有元素的新堆H。前面已经说过,如果我们不需要合并操作,则二叉堆是理想的选择。可惜合并二叉堆的时间复杂度为O(n),用它来实现可并堆,则合并操作必然成为算法的瓶颈。左偏树(LeftistTree)、二

17、项堆(BinomialHeap)和Fibonacci堆(FibonacciHeap)都是十分优秀的可并堆。本文讨论的是左偏树,在后面我们将看到各种可并堆的比较。在线代理

18、网页代理

19、代理网页

20、http://www.dailiav.com减肥药排行榜

21、淘宝最好的减肥药

22、什么减肥药效果最好

23、减肥瘦身药

24、http://pigproxy.cn本资料由-大学生创业

25、创业

26、创业网http://www.chuangyw.com/提供资料2.2左偏树的定义左偏树(LeftistTree)是一种可并堆的实现。左偏树是一棵二叉树,它

27、的节点除了和二叉树的节点一样具有左右子树指针(left,right)外,还有两个属性:键值和距离(dist)。键值上面已经说过,是用于比较节点的大小。距离则是如下定义的:节点i称为外节点(externalnode),当且仅当节点i的左子树或右子树为空(left(i)=NULL或right(i)=NULL);节点i的距离(dist(i))是节点i到它的后代中,最近的外节点所经过的边数。特别的,如果节点i本身是外节点,则它的距离为0;而空节点的距离规定为-1(dist(NULL)=-1)。在本文中,有时也提到一棵左

28、偏树的距离,这指的是该树根节点的距离。左偏树满足下面两条基本性质:[性质1]节点的键值小于或等于它的左右子节点的键值。即key(i)≤key(parent(i))这条性质又叫堆性质。符合该性质的树是堆有序的(Heap-Ordered)。有了性质1,我们可以知道左偏树的根节点是整棵树的最小节点,于是我们可以在O(1)的时间内完成取最小节点操作。[性质2]节点的左子节点的距离不小于右子节点

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。