《数据结构堆》排序

pipilang 2003-12-07 10:17:19
在做习题的时候有一个题不会做,请大虾帮忙看看

一组记录的排序码为(47,78,61,33,39,80),则利用堆排序的方法建立的初始堆为?
A。78,47,61,33,39,80
B。80,48,61,33,39,47
C。80,78,61,29,33,33
D。80,61,78,39,47,33

正确答案是什么呀?
怎么来的?
...全文
77 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zachary7833 2003-12-09
  • 打赏
  • 举报
回复
n/2 到 1(有孩子的结点) 开始检测是否需要调整
80
78 61
33 39 47

aaalife 2003-12-09
  • 打赏
  • 举报
回复
严老的 书上 说了

以下是引用:

堆排序方法对记录数较少的文件并不提倡,但对n较大的文件还是很有效的。
因为其运行时间主要耗费在建初始堆和调整新建堆时进行的反复“筛选”上。
。。。。。(哎呀,好累,我还得复习,快考试了啊,就不都打出来了)

在 堆排序最坏的情况下,其时间复杂度也为O(n logn)。

此外,堆排序仅需一个记录大小交换用的辅助空间。---这一点 不好吗??:)

严老 书 上的话好好体会一下 啊,现在不懂,将来会慢慢理解的 ^_^





to : haosjt(haosjt)

这个题就是没答案

我觉得 我和 plainsong(短歌) 大哥 都做对了啊 ^_^
aaalife 2003-12-09
  • 打赏
  • 举报
回复
1----47,78,61,33,39,80 ----初始状态
2----47,78,80,33,39,61 ----从 n/2 到 1 开始实现大顶堆
3----80,78,47,33,39,61 ---- 47<80,需要 调整
4----80,78,61,33,39,47 ---- 47<61,需要 调整

完毕!



haosjt 2003-12-09
  • 打赏
  • 举报
回复
那么这道题目就没有答案了
A,B,C,D都不对呀!!!
163lzm 2003-12-09
  • 打赏
  • 举报
回复
问一下,堆有什么用途? 用在哪? 优点?严老的书也不是很清楚啊!
我的老师讲数据结构时特烂,什么都讲不清.
aaalife 2003-12-08
  • 打赏
  • 举报
回复
lyff8neo(考研山羊--数据结构山羊)
说得对

你看看 严老 的 数据结构,
应该不会有疑问的 :)






短歌如风 2003-12-08
  • 打赏
  • 举报
回复
初始:
47
78 61
33 39 80

调整:
47
78 80
33 39 61
调整:
80
78 47
33 39 61
调整:
80
78 61
33 39 47
短歌如风 2003-12-08
  • 打赏
  • 举报
回复
80,78,61,33,39,47

lyff8neo 2003-12-08
  • 打赏
  • 举报
回复
错误!堆有大顶的也有小顶的哦!!
大顶的就是把小的给压到下面,小顶的就是把大的给压到下面哦!!!
其实在这里和你说如何调整很麻烦的哦!说不清啊!你看看严老师的书,说的很详细的哦!
zhushizu 2003-12-07
  • 打赏
  • 举报
回复
是D,堆就是大的在下面,小的在上面,这样说比较通俗点吧!

每一次都把大的沉到下面,这样就可以实现了哦

33,029

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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