生活知识
生活常识
科技数码
教育知识
汽车知识
游戏知识
办公方法
装修知识
旅游知识
搜索

生活常识分类 日常知识 生活知识 餐饮知识 宠物知识 运动知识 更多知识 中文舞曲 英文舞曲 车载音乐 车载视频

堆排序算法思想(堆排序算法)

日期:2022-10-04 08:01:58人气:10

导读:大家好,小帝来为大家解答以上问题。堆排序算法思想,堆排序算法这个很多人还不知道,现在让我们一起来看看吧!1、初始堆:    49   ...

大家好,小帝来为大家解答以上问题。堆排序算法思想,堆排序算法这个很多人还不知道,现在让我们一起来看看吧!

1、初始堆:    49    a[1]

2、    38    65        a[2]    a[3]

3、    97    76   13    27    a[4]    a[5]  a[6]   a[7]

4、  50    a[8]

5、procedure heap(nn,ii:integer);

6、  var  x,i,j:integer;

7、  begin

8、    i:=ii;x:=a[ii];j:=2*ii;

9、    while j<=nn do

10、    begin

11、    if (j<nn) and(a[j]<a[j+1] then j:=j+1;

12、    if x<a[j] then begin a[i]:=a[j];i:=j;j:=2*i;end

13、    else j:=nn+1;

14、    end;

15、  end;

16、主程序:

17、for i:=n div 2 downto 1 do heap(n,i);    /heap相当于搜索顶点i的所有子节点,找出最大的和它替换

18、for i:=n downto 2 do

19、  begin

20、    temp:=a[1];a[1]:=a[i];a[i]:=temp;    /将当前最大的数(放在a[1])和第i个数交换,保证从后面往前数是

21、    heap(i-1,1);    从大到小,则程序完成时,数组a从前往后是从小到大

22、  end;

23、至于过程自己用笔算,很快就会明白,不明白算了就明白。

以上就是【堆排序算法思想,堆排序算法】相关内容。

声明: 本站所有文章来自互联网搜索结果, 如果侵犯到你的权益 请提供版权证明来信告知,我们会在3个工作日之内删除 本站为非赢利性网站 不接受任何赞助和广告

Copyright 2005-2022 baike.pingguodj.com 酷帝达百科 客服邮箱:s2s2s2-s@outlook.com