亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        堆排序的構(gòu)造方法探究

        2020-11-10 04:38:45杜雙敏
        電腦知識與技術(shù) 2020年27期
        關(guān)鍵詞:二叉樹無序關(guān)鍵字

        杜雙敏

        摘要:堆排序作為一種內(nèi)排序算法,其特點是將待排序記錄R[1..n]看成一棵完全二叉樹的順序存儲結(jié)構(gòu),利用完全二叉樹中孩子結(jié)點和雙親結(jié)點之間的內(nèi)在關(guān)系,在當前無序區(qū)中選擇關(guān)鍵字最?。ɑ蜃畲螅┑挠涗涊敵?,依次得到一個有序序列。堆排序需要解決的兩個問題:一是如何將一個無序序列建成一個堆;二是在輸出堆頂元素之后,把剩余元素調(diào)整成為一個新堆。堆排序?qū)ι倭康挠涗泚碚f,其優(yōu)點不明顯,但對大量記錄來說是很有效的。

        關(guān)鍵詞:堆排序;完全二叉樹

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

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

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

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

        1964年J.willioms和Floyd提出了堆排序算法,堆排序是一樹型選擇排序,在其排序過程中的比較次數(shù)達到樹型選擇水平,同時又不增加存儲開銷。它的特點是將記錄R[1..n]看成一棵完全二叉樹的順序存儲結(jié)構(gòu),利用完全二叉樹中孩子結(jié)點和雙親結(jié)點之間的內(nèi)在關(guān)系,在當前無序區(qū)中選擇關(guān)鍵字最小(或最大)的記錄輸出。在輸出堆頂?shù)淖钚≈担ɑ蜃畲笾担┲螅銓⑹O碌膎一1個元素的序列重新建成一個堆,則得到n個元素的次最小值(或次最大值),如此反復(fù),便得到一個有序序列,這個過程我們稱之為堆排序。

        堆排序算法的基本思想可以描述為:對一組待排序記錄的關(guān)鍵字,首先是按堆的定義將它們建成一個堆,排成一個序列,從而輸出堆頂?shù)淖钚。ɑ蜃畲螅╆P(guān)鍵字。然后將剩余的n-l個關(guān)鍵字再重新建成一個新堆,通常稱為重新調(diào)整成堆,便得到次?。ɑ虼未螅┑年P(guān)鍵字輸出,如此反復(fù),直到全部關(guān)鍵字排序成有序序列。

        堆的定義[1]為:

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

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

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

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

        1 堆的構(gòu)造

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

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

        1)調(diào)整為小根堆

        2)調(diào)整為大根堆

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

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

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

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

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

        其算法如下:

        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 結(jié)束語

        堆排序?qū)ι倭康挠涗泚碚f,其優(yōu)點不明顯,但對大量記錄來說是很有效的。堆排序在最壞的情況下,其平均時間復(fù)雜度為O(nlog2n),輔助空間O(1),它不穩(wěn)定。

        參考文獻:

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

        [通聯(lián)編輯:梁書]

        猜你喜歡
        二叉樹無序關(guān)鍵字
        CSP真題——二叉樹
        電腦報(2022年37期)2022-09-28 05:31:07
        車身無序堆疊零件自動抓取系統(tǒng)
        履職盡責求實效 真抓實干勇作為——十個關(guān)鍵字,盤點江蘇統(tǒng)戰(zhàn)的2021
        華人時刊(2022年1期)2022-04-26 13:39:28
        二叉樹創(chuàng)建方法
        成功避開“關(guān)鍵字”
        張博庭:煤電不能再這么無序發(fā)展下去了
        能源(2017年11期)2017-12-13 08:12:30
        一種由層次遍歷和其它遍歷構(gòu)造二叉樹的新算法
        高速路上右行規(guī)則與無序行駛規(guī)則的比較研究
        無序體系中的國際秩序
        論復(fù)雜二叉樹的初始化算法
        河南科技(2014年24期)2014-02-27 14:20:01
        性色av手机在线观看| 亚州少妇无套内射激情视频| 国产精品公开免费视频| 日韩精品中文字幕 一区| 大陆成人精品自拍视频在线观看| 厕所极品偷拍一区二区三区视频 | 老熟妇Av| 欧洲一级无码AV毛片免费| 成人男性视频在线观看| 久久久亚洲欧洲日产国码aⅴ| 亚洲欧美日韩国产精品专区| 久久精品无码一区二区三区不卡| 日本女优久久精品久久| 偷拍激情视频一区二区三区| 欧美成人免费全部| 国产精品视频一区二区三区四| 亚洲片在线视频| 精品私密av一区二区三区| 免费观看18禁无遮挡真人网站| 天天躁人人躁人人躁狂躁| 亚洲国产免费公开在线视频| 国产精品国产三级久久| 欧美一区二区三区久久综| 国产va免费精品观看| 成人国产精品免费网站| 久久99国产综合精品女同| 久久久久久久综合综合狠狠| 国产啪精品视频网站丝袜| 国产成人综合亚洲国产| 日韩无码专区| 亚洲av无码一区二区三区四区| 亚洲午夜精品久久久久久一区| 国模一区二区三区白浆| 色狠狠一区二区三区中文| 亚洲精华国产精华液的福利| 亚洲综合色婷婷久久| 顶级高清嫩模一区二区| 国产精品∧v在线观看| 蜜桃臀无码内射一区二区三区 | 大陆国产乱人伦| 日韩一卡2卡3卡4卡新区亚洲|