社区
新手乐园
帖子详情
建立大顶堆关键字是增序还是降序?
wynapos
2012-06-09 04:24:36
RT,还有原因是啥啊?
...全文
1063
10
打赏
收藏
建立大顶堆关键字是增序还是降序?
RT,还有原因是啥啊?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
篾匠
2012-06-13
打赏
举报
回复
[Quote=引用 7 楼 的回复:]
如果root是最大的,那就是大堆;如果是最小的,那就是小堆;
小堆也叫 priority queue
[/Quote]
C++标准库里的priority_queue默认也是大根堆哦
篾匠
2012-06-13
打赏
举报
回复
不太明白楼主疑问是什么, 堆并没有排好序, 只是父节点和子节点存在某种关系而已, 大根堆父节点要大于子节点, 小根堆反之. (MS应该包括等于)
在C++的标准库中, 默认是使用less<T>来作比较的, 得到的是大根堆; 当然, 你要是自己实现, 肯定可以用<也可以用>=来实现大根堆, 不是吗? 只是写代码时怎样安排条件语句的事而已啊.
wynapos
2012-06-10
打赏
举报
回复
不对啊,书中说关键字按升序排列应该是建大顶堆 1,2楼明显不对 谁知道原因?
shiter
2012-06-10
打赏
举报
回复
数据结构的书里都有的
独孤过儿
2012-06-10
打赏
举报
回复
如果root是最大的,那就是大堆;如果是最小的,那就是小堆;
小堆也叫 priority queue
wynapos
2012-06-10
打赏
举报
回复
就是严蔚敏的数据结构啊......
W170532934
2012-06-10
打赏
举报
回复
楼主看的啥书啊
xtianshi00
2012-06-09
打赏
举报
回复
楼上 正解啊。。。LZ 这种问题。完全可以自己百度啊。。。那效率多快啊。。。
quwei197874
2012-06-09
打赏
举报
回复
大顶堆顾名思义就是最大的元素在最上面,就是降序排序,反之就是升序排(按堆排序定义,新元素每次和堆顶元素交换再重新生成堆)
堆排序(浅谈
大顶堆
与小顶堆)
堆是一种非线性结构,(本篇随笔主要分析堆的数组实现)可以把堆看作一个数组,也可以被看作一个完全二叉树,通俗来讲堆其实就是利用完全二叉树的结构来维护的一维数组,按照堆的特点可以把堆分为
大顶堆
和小顶堆。...
谈谈堆排序,
大顶堆
,小顶堆
将待排序的
关键字
序列(R1,R2,...Rn)构建
大顶堆
,此堆为初始的无序区. 2.将堆顶元素R[1]与最后一个元素R[n]交换,此时得到新的无序区(R1,R2,......Rn-1)和新的有序区(Rn),且满足R[1,2...n-1][n]; 3.由于交换后新的...
堆排序,为什么升序排列要建大堆,
降序
排列要建小堆
堆排序中用到了
建立
大小堆和向下调整的内容,对这些内容有些不了解的同学可以去补一补专门写堆的博客,方便更好的理解堆排序数据结构之堆(Heap),堆的相关操作,用堆模拟优先级队列。 如果把待排序序列分为未排序...
堆排序(详情讲解)
一般升序采用
大顶堆
,
降序
采用小顶堆 基本思想: 首先将这n条记录按
关键字
值的大小
建立
堆(称为初始堆),将堆顶元素r[0]与r[n-1]交换 然后,将剩下的{r[0]..r[n-2]}序列调整成堆 再将 r[0]与r[n-2]交换,再将剩下...
堆排序详解
大根堆为根节点大于左右子节点,且左右子节点大小不用在意谁大谁小。小根堆的根节点小于左右子节点。一般升序使用大根堆,
降序
使用小根堆。将数组arr[12,9,54,3,5,87,25,14]使用堆排序实现升序排列。由此找到了最大...
新手乐园
33,311
社区成员
41,784
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章