建立大顶堆关键字是增序还是降序?

wynapos 2012-06-09 04:24:36
RT,还有原因是啥啊?
...全文
1063 10 打赏 收藏 转发到动态 举报
写回复
用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
  • 打赏
  • 举报
回复
大顶堆顾名思义就是最大的元素在最上面,就是降序排序,反之就是升序排(按堆排序定义,新元素每次和堆顶元素交换再重新生成堆)

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧