社区
数据结构与算法
帖子详情
用链表建堆
Leguroky
2010-07-19 08:55:28
我在网上查不多这方面的资料,我能想到的,都是以快速排序方法为基础来实现合并、查找、插入等操作,大家有更好的方法吗?
...全文
161
10
打赏
收藏
用链表建堆
我在网上查不多这方面的资料,我能想到的,都是以快速排序方法为基础来实现合并、查找、插入等操作,大家有更好的方法吗?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kindlucy
2010-07-21
打赏
举报
回复
参考算法导论的 二项堆,对堆的合并的复杂度是O(lgn)
Leguroky
2010-07-21
打赏
举报
回复
[Quote=引用 5 楼 aaa20090987 的回复:]
引用 4 楼 leguroky 的回复:
主要是找最大值,提出最大值(就像堆排序那样),还有就是两个堆的合并。
用一个左偏树就行
[/Quote]
这里仅仅是讨论链表建堆,应该用不上左偏树吧。
Leguroky
2010-07-21
打赏
举报
回复
[Quote=引用 9 楼 kindlucy 的回复:]没看到那呢……看来也只能这样了,多谢。
参考算法导论的 二项堆,对堆的合并的复杂度是O(lgn)
[/Quote] 0
超级大笨狼
2010-07-20
打赏
举报
回复
链表要有索引,就想数组一样用。
i是根的话,2i+1右节点,2i左节点,参考算法导论前几章排序的部分建堆的办法。
有下降操作,可以保证堆的顺序。
AAA20090987
2010-07-20
打赏
举报
回复
[Quote=引用 4 楼 leguroky 的回复:]
主要是找最大值,提出最大值(就像堆排序那样),还有就是两个堆的合并。
[/Quote]
用一个左偏树就行
Leguroky
2010-07-20
打赏
举报
回复
主要是找最大值,提出最大值(就像堆排序那样),还有就是两个堆的合并。
Leguroky
2010-07-20
打赏
举报
回复
[Quote=引用 6 楼 superdullwolf 的回复:]
链表要有索引,就想数组一样用。
i是根的话,2i+1右节点,2i左节点,参考算法导论前几章排序的部分建堆的办法。
有下降操作,可以保证堆的顺序。
[/Quote]
这样是不错,不过要是两个堆合并呢?怎么处理,尤其是两个堆没有交叉的时候?我能想到的也只有重复插入操作了,有更好的思路吗?
flylee
2010-07-19
打赏
举报
回复
需要支持多大的数据量,有哪些功能需求
aduxiaozi
2010-07-19
打赏
举报
回复
啥意思啊,链表建堆?
饭fan有引力
2010-07-19
打赏
举报
回复
友情帮顶
堆排序的c语言程序供人下载
堆排序的c语言程序,程序完全正确不需再做修改即能调试
cl.zip_algorithms
Heap and list algorithms in C
用
链表
表示的可合并最大堆
相关问题:(利用
链表
实现可合并堆) 可合并堆支持以下操作:MAKE-HEAP(创建一个空的可合并堆),INSERT,MAXIMUM,EXTRACT-MAX和UNION。说明在下列前提下如何用
链表
实现可合并堆。试着使各操作尽可能高效。分析每个操作按动态集合规模的运行时间。 由于对于堆操作需要查找父结点,以及左右孩子结点,所以本程序中用到了非递归非辅助栈的遍历与查找操作,它需要O(nlgn)时间,
堆排序之“用最小堆将k个已排序
链表
合并为一个排序
链表
”
问题:请给出一个时间为O(nlgk),用来将k个已排序
链表
合并为一个排序
链表
的算法。此处的n为所有输入
链表
中元素的总数。(提示:用一个最小堆来做k路合并) 编程思路: 假设k个
链表
都是非降序排列的。 (1)取k个元素建立最小堆,这k个元素分别是k个
链表
的第一个元素。
建堆
的时间复杂度O(k)。 (2)堆顶元素就是k个
链表
中最小的那个元素,取出它。时间复杂度O(1)。 (
链式结构实现堆排序
在很多数据结构和算法的书上,“堆排序”的实现都是建立在数组上,数组能够通过下标访问其元素,其这一特性在堆排序的实现上,使得其编码实现比链式结构简单,下面我利用
链表
实现堆排序。 在“堆”这种数据结构中,分为“大根堆”和“小根堆”,“大根堆”中其每一个双亲节点大于等于其子女节点,“小根堆”的定义与其相 反, 当然实现最大堆之前必须要建一个堆,一个高度为h的堆,它的前h-1层时满的,如下图所...
数据结构与算法
33,027
社区成员
35,335
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章