999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

堆排序的構造方法探究

2020-11-10 04:38:45杜雙敏
電腦知識與技術 2020年27期
關鍵詞:排序

杜雙敏

摘要:堆排序作為一種內排序算法,其特點是將待排序記錄R[1..n]看成一棵完全二叉樹的順序存儲結構,利用完全二叉樹中孩子結點和雙親結點之間的內在關系,在當前無序區中選擇關鍵字最小(或最大)的記錄輸出,依次得到一個有序序列。堆排序需要解決的兩個問題:一是如何將一個無序序列建成一個堆;二是在輸出堆頂元素之后,把剩余元素調整成為一個新堆。堆排序對少量的記錄來說,其優點不明顯,但對大量記錄來說是很有效的。

關鍵詞:堆排序;完全二叉樹

中圖分類號:TP399 文獻標識碼:A

文章編號:1009-3044(2020)27-0067-03

開放科學(資源服務)標識碼(OSID):

排序就是確定一種排列[Rj1,Rj2,…,Rjn],設含n個記錄的文件{R1,R2,…,Rn】,與其相應的關鍵字為{k1,k2,…,kn),使得與它們相應的關鍵字滿足遞增(或遞減)關系,即:Kj1≤Kj2≤…,Kjn這種操作過程就稱為排序。簡而言之,排序就是將一個數據元素(或記錄)的任意系列重新排成一個按關鍵字有序序列。如果在待排序的表中,存在多個相同關鍵字的記錄,經過排序后這些相同關鍵字記錄之間的相對次序保持不變,則稱這種排序方法是穩定的;反之,若相同關鍵字記錄之間的相對次序發生了變化,則稱這種排序方法是不穩定的。

1964年J.willioms和Floyd提出了堆排序算法,堆排序是一樹型選擇排序,在其排序過程中的比較次數達到樹型選擇水平,同時又不增加存儲開銷。它的特點是將記錄R[1..n]看成一棵完全二叉樹的順序存儲結構,利用完全二叉樹中孩子結點和雙親結點之間的內在關系,在當前無序區中選擇關鍵字最小(或最大)的記錄輸出。在輸出堆頂的最小值(或最大值)之后,便將剩下的n一1個元素的序列重新建成一個堆,則得到n個元素的次最小值(或次最大值),如此反復,便得到一個有序序列,這個過程我們稱之為堆排序。

堆排序算法的基本思想可以描述為:對一組待排序記錄的關鍵字,首先是按堆的定義將它們建成一個堆,排成一個序列,從而輸出堆頂的最小(或最大)關鍵字。然后將剩余的n-l個關鍵字再重新建成一個新堆,通常稱為重新調整成堆,便得到次小(或次大)的關鍵字輸出,如此反復,直到全部關鍵字排序成有序序列。

堆的定義[1]為:

對于一個關鍵字序列(k1,k2,…,kn】,當滿足:

稱此序列為堆(heap),其中,i=1,2,…,[n/2]。滿足條件①稱之為小根堆,滿足條件②稱之為大根堆。

堆排序需要解決的兩個問題:(1)如何將一個無序序列建成一個堆?(2)如何在輸出堆頂元素之后,把剩余的元素調整成為一個新的堆?

設記錄的關鍵字集合key={49,38,66,90,75,10,20),下面以其為例,來說明堆的構造和堆的篩選、重建過程。

1 堆的構造

我們可以借助完全二叉樹來描述堆。先把關鍵字集合key={49,38,66,90,75,10,20】構造成一棵完全二叉樹。

依照Floyd篩選法,從完全二叉樹的第i(i=[n/2])個結點序號開始,對以此結點為根的子樹做必要調整,使該子樹為堆。然后再分別調整以第i-1,i-2,…,1個結點序號為根的子樹。

1)調整為小根堆

2)調整為大根堆

2堆的元素輸出及堆的重建

1)小根堆的元素輸出及堆的重建輸出75,90,完成排序輸出。

2)大根堆的元素輸出及堆的重建

輸出20,10,完成排序輸出。

以上就是堆排序的構造過程。堆排序的過程是從一個無序序列建堆,反復篩選和進行堆調整的過程。篩選就是自堆頂至葉子的調整過程。堆調整就是輸出堆頂元素之后,以堆的最后一個元素(葉結點)代替之。

其算法如下:

Void Heapsort(RecType R[],int n)

{ int i;

RecType temp;

for(i=n/2;i>=l;i--)

Sift(R,i,n);

for(i=n;i>=2;i--)

{ temp=R[1];

R[1]=R[i]

R[i]=temp;

sift(R,l,i-l);}

Void sift(RecType R[],int low,int high)

{ int i=low,j=2*i;

RecType temp=R[i];

While (j<=high)

{ if(R[j].key< R[j+l].key&&j

j++;

if(R[j ].key>temp.key)

{R[i]=R[j]

i=J;

j_2*i;)

else break;1

R[i]=temp;)

3 結束語

堆排序對少量的記錄來說,其優點不明顯,但對大量記錄來說是很有效的。堆排序在最壞的情況下,其平均時間復雜度為O(nlog2n),輔助空間O(1),它不穩定。

參考文獻:

[1]嚴蔚敏,吳偉民,數據結構(C語言版)[M].北京:清華大學出版社,1996.

[通聯編輯:梁書]

猜你喜歡
排序
排排序
排序不等式
作者簡介
名家名作(2021年9期)2021-10-08 01:31:36
作者簡介
名家名作(2021年4期)2021-05-12 09:40:02
恐怖排序
律句填空排序題的備考策略
節日排序
刻舟求劍
兒童繪本(2018年5期)2018-04-12 16:45:32
作者簡介(按文章先后排序)
名家名作(2017年2期)2017-08-30 01:34:24
按特定規律排序
兒童與健康(2012年1期)2012-04-12 00:00:00
主站蜘蛛池模板: 在线看免费无码av天堂的| 激情影院内射美女| 色婷婷亚洲综合五月| 在线视频亚洲欧美| 免费一看一级毛片| 日韩高清欧美| 麻豆国产原创视频在线播放 | 亚洲欧美极品| 国产一在线观看| 国产一级做美女做受视频| 区国产精品搜索视频| 999在线免费视频| 超级碰免费视频91| 欧洲精品视频在线观看| 午夜激情福利视频| 99人体免费视频| 2019年国产精品自拍不卡| 青草国产在线视频| 国产精品第页| 国产精品永久在线| 99久久精品无码专区免费| 亚洲成人高清在线观看| 成人欧美在线观看| 亚洲无码精彩视频在线观看 | 无遮挡国产高潮视频免费观看| www成人国产在线观看网站| 激情综合网址| 99久久性生片| 免费国产高清精品一区在线| 免费毛片a| 91色在线观看| 成人午夜视频网站| 国产菊爆视频在线观看| 久久一级电影| 国产视频你懂得| 天天摸天天操免费播放小视频| 天堂在线www网亚洲| 国产一区二区人大臿蕉香蕉| 热久久这里是精品6免费观看| 亚洲第一成年人网站| 色老头综合网| 精品国产免费观看一区| 久久99精品国产麻豆宅宅| 国产在线观看91精品| 中文毛片无遮挡播放免费| 久久无码av三级| 亚洲福利视频一区二区| 国产96在线 | 国产精品黄色片| 亚洲精品另类| a级毛片一区二区免费视频| 原味小视频在线www国产| 国产精品任我爽爆在线播放6080 | 特级aaaaaaaaa毛片免费视频 | 欧美日韩成人| 国产欧美另类| 国产精品无码作爱| 91成人试看福利体验区| 亚洲国产中文精品va在线播放| 国产精品粉嫩| 精品三级网站| 91精品在线视频观看| 91欧美在线| 女人18毛片水真多国产| 国产一区二区在线视频观看| 国产在线视频欧美亚综合| 国产一区二区三区在线观看视频| 成人国产精品网站在线看| 国产一区二区网站| 欧美日韩国产精品va| 色综合五月婷婷| 91在线高清视频| 91破解版在线亚洲| 一区二区三区在线不卡免费| 日韩精品少妇无码受不了| 伊人天堂网| 九九这里只有精品视频| 91精品伊人久久大香线蕉| 毛片网站在线播放| 日韩欧美国产三级| 91美女在线| 98精品全国免费观看视频|