数据结构的堆排序和初始堆的概念...我被搞懵了...他们有什么不同..

比如说(46,79,56,38,40,84)它的初始堆是什么,堆排序后又是什么,最好给个排序的过程...thanks... 比如说(46,79,56,38,40,84)它的初始堆是什么,堆排序后又是什么,最好给个排序的过程...thanks 展开
 我来答
惟妙惟肖还谦卑的福音u
2011-12-16 · 超过11用户采纳过TA的回答
知道答主
回答量:21
采纳率:0%
帮助的人:31万
展开全部
我说的是最大堆(即从大到小排)
初始堆即最大的元素在第一个,其他元素任意排(但是满足父节点大于子节点)
var i,n:longint;
a:array[1..1000] of longint;
procedure ex(var x,y:longint);
var k:longint;
begin
k:=x;x:=y;y:=k;
end;

procedure down(i,l:longint);
var t:longint;
begin
t:=i*2;
while t<=l do
begin
if (t<l)and(a[t+1]>a[t]) then inc(t);
if a[t]>a[i] then
begin
ex(a[t],a[i]);
i:=t;t:=i*2;
end
else break;
end;
end;

begin
readln(n);
for i:=1 to n do read(a[i]);
readln;
for i:=n div 2 downto 1 do down(i,n);
for i:=n downto 2 do
begin
write(a[1],' ');
a[1]:=a[i];
down(1,i-1);
end;
writeln(a[1]);
end.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
ycsxm
2011-12-08 · TA获得超过3.3万个赞
知道大有可为答主
回答量:1.4万
采纳率:0%
帮助的人:8584万
展开全部
初始堆是空的,要把数据建进去的。
看看书或网上搜索一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2019-05-19 · 贡献了超过1252个回答
知道答主
回答量:1252
采纳率:3%
帮助的人:106万
展开全部
看看书或网上搜索一下就可以了吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
十八250
2019-05-19 · 贡献了超过676个回答
知道答主
回答量:676
采纳率:1%
帮助的人:57.9万
展开全部
,,,,,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
judgehzh
2019-05-19 · 超过25用户采纳过TA的回答
知道答主
回答量:131
采纳率:100%
帮助的人:30.5万
展开全部
初建堆是按照第一次排序完成“取出堆顶元素”步骤 得到初始堆
初始堆就像一个完全二叉树一样,根部就是数组中最大或最小的元素
我们从初始堆的取出堆顶并输出,
然后将最后一个结点抽取到顶部 ,再完成“取出堆顶元素”步骤, 生成新的初始堆
再从初始堆的取出堆顶并输出
以此循环到数组全部元素都取出
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式