社区
数据结构与算法
帖子详情
关于堆排序的问题~~请教大家
ruanruan0527
2011-06-26 04:24:41
堆排序的基本思想里面说到,把堆顶a[0]元素(为最大元素)和当前最大堆的最后一个元素交换,什么叫最大堆的最后一个元素?我看了后面的转化例子,可是还是不是很懂~~请教大家了
...全文
192
17
打赏
收藏
关于堆排序的问题~~请教大家
堆排序的基本思想里面说到,把堆顶a[0]元素(为最大元素)和当前最大堆的最后一个元素交换,什么叫最大堆的最后一个元素?我看了后面的转化例子,可是还是不是很懂~~请教大家了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Sunday
2011-07-03
打赏
举报
回复
http://blog.csdn.net/zhuyingqingfen/article/details/6460200
agilely
2011-06-30
打赏
举报
回复
攒分中。。 lz给我分把。。。
agilely
2011-06-30
打赏
举报
回复
比如n个元素 我们要升序排列
首先一趟heap调整a[0]-a[n-1]为大顶堆 这样a[0]就是a[0]-a[n-1]最大的了
然后把a[0]和a[n-1]互换 这样最大的就放到a[n-1]了
在对a[0]-a[n-2]heap调整为大顶堆 这样a[0]就是a[0]-a[n-2]最大的了
然后把a[0]和a[n-2]互换 这样次大的就放到a[n-2]了
在对a[0]-a[n-3]heap调整为大顶堆 这样a[0]就是a[0]-a[n-3]最大的了
然后把a[0]和a[n-3]互换 这样次次大的就放到a[n-2]了
。。。。
就这样下去
ruanruan0527
2011-06-30
打赏
举报
回复
最后一个元素是,把堆转化成数组以后的最后的那一个。。。。真的就是字面的意思,囧。
ljsspace
2011-06-28
打赏
举报
回复
堆排序就是根据堆的两个性质来的,没什么玄机。。。
z2038531
2011-06-28
打赏
举报
回复
错了 最大堆的最后元素 为spris:<SDD SFFF>:
gabby123
2011-06-27
打赏
举报
回复
先把整个数组变成最大堆,反复进行,直到堆为空。
Nishang123
2011-06-27
打赏
举报
回复
汗~~·我看着都头晕
SuperFC
2011-06-27
打赏
举报
回复
《算法导论》里面讲的很清楚!LZ看看吧
fengtaocat
2011-06-27
打赏
举报
回复
一般是在数组上建立堆,所以size为n的堆的最后一个元素就是数组的第n个元素
zhanghaigang
2011-06-26
打赏
举报
回复
不错啊,这年头
MAY
2011-06-26
打赏
举报
回复
受教了
ljsspace
2011-06-26
打赏
举报
回复
[Quote=引用 3 楼 ruanruan0527 的回复:]
88 76 50
76 40 50 40 32 40
50 10 9 32 5 10 9 32……
[/Quote]
取走堆顶元素76,将32移到堆顶,然后32跟50交换(因为32比50小,50是第二层中最大的数).
ruanruan0527
2011-06-26
打赏
举报
回复
晕,这里面怎么打不出来那个格式啊、、、
ruanruan0527
2011-06-26
打赏
举报
回复
88 76 50
76 40 50 40 32 40
50 10 9 32 5 10 9 32 5 10 9
5
(A) (B) (C)
可是这个从B如何到的C 啊?交换到底是怎么个交换呢,感觉还是不很清楚.
ljsspace
2011-06-26
打赏
举报
回复
就是最后一个叶子结点,这样可以保持堆仍然是一颗完全二叉树.
stein42
2011-06-26
打赏
举报
回复
堆排序是一种选择排序。
先把整个数组变成一个最大堆。
每次选堆里面的最大元素,也就是a[0],
堆最后一个元素,也就是a[heap_size-1],heap_size是堆的大小,
交换它们,同时heap_size减一,再恢复堆的性质。
反复进行,只到堆为空。
C语言系列之 堆、
堆排序
与字符串强化
尹成老师带你步入 C 语言的殿堂,讲课生动风趣、深入浅出,全套视频内容充实,整个教程以 C 语言为核心,完整精彩的演练了数据结构、算法、设计模式、数据库、大数据高并发检索、文件重定向、多线程同步、进程通讯、黑客劫持技术、网络安全、加密解密,以及各种精彩的小项目等,非常适合大家学习!
直接选择排序到
堆排序
做的那些改进
1 你会学到什么 2 讨论的
问题
是什么 3 相关的概念和理论 4 直接选择排序 基本思想 升序排序的例子 算法评价 5 直接选择的优化版之
堆排序
自学成才的计算机科学家 Flody
堆排序
的基本概念
堆排序
的算法思想
堆排序
是如何工作的 应用
堆排序
得到升序排序的例子 算法评价 6 总结 1 你会学到什么?彻底弄明白常用的排序算法的基本思想,算法的时间和空间复杂度,以及如何选择这些排序算法
java
堆排序
有什么用_关于
堆排序
java
请教
?
packageheapSortAndQueue;publicclassHeapSort{privatestaticfinalintN=100;//随机产生的数组元素的个数privatestaticfinaldoubleS=200;//随机产生的数组元素的范围inttemp=0;intheap...package heapSortAndQueue;public class HeapSort {pri...
学文科的他发明
堆排序
,逆袭成为斯坦福终身教授!
计算机先驱奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德(Robert W.Floyd)和威廉姆斯(J.Williams)在1964年共同发明了
堆排序
算法。罗伯特·...
日撸 Java 三百行(48 天:
堆排序
:专门设计一个数据结构来实现的排序算法)
注意:这里是JAVA自学与了解的同步笔记与记录,如有
问题
欢迎指正说明 目录 一、关于
堆排序
二、堆积树——堆(Heap)结构 · 创建型堆的维护 · 创建型堆的维护的代码 · 添加型堆维护 · 删除型堆维护 三、
堆排序
的实现逻辑 四、全部代码及其单元测试 性能与特性分析 总结 一、关于
堆排序
堆排序
是基本的排序算法体系,也就是本科阶段基本要求掌握的算法体系中,是最麻烦的一个算法,因为其涉及了一个全新的数据结构——堆(Heap)。因此在完成
堆排序
操作时,还需要...
数据结构与算法
33,009
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章