青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 34,comments - 2,trackbacks - 0
估計(jì)還要問(wèn)問(wèn):什么是堆,什么是堆排序?堆與計(jì)算機(jī)分配內(nèi)存的堆相同嗎?
很多資料給出:堆的定義是
(1)、n個(gè)關(guān)鍵字序列(Kl,K2,…,Kn)稱(chēng)為(Heap),當(dāng)且僅當(dāng)該序列滿(mǎn)足如下性質(zhì)(簡(jiǎn)稱(chēng)為堆性質(zhì)):
ki≤K2i且ki≤K2i+1 或  Ki≥K2i且ki≥K2i+1 (1≤i≤ n) //ki相當(dāng)于二叉樹(shù)的非葉結(jié)點(diǎn),K2i則是左孩子,k2i+1是右孩子 

(2)若將此序列所存儲(chǔ)的向量R[1..n]看做是一棵完全二叉樹(shù)的存儲(chǔ)結(jié)構(gòu),則堆實(shí)質(zhì)上是滿(mǎn)足如下性質(zhì)的完全二叉樹(shù):
  樹(shù)中任一非葉結(jié)點(diǎn)的關(guān)鍵字均不大于(或不小于)其左右孩子(若存在)結(jié)點(diǎn)的關(guān)鍵字。

(3)、根結(jié)點(diǎn)(亦稱(chēng)為堆頂)的關(guān)鍵字是堆里所有結(jié)點(diǎn)關(guān)鍵字中最小者的堆稱(chēng)為小根堆,又稱(chēng)最小堆。根結(jié)點(diǎn)(亦稱(chēng)為堆頂)的關(guān)鍵字是堆里所有結(jié)點(diǎn)關(guān)鍵字中最大者,稱(chēng)為大根堆,又稱(chēng)最大堆。

(4)、堆中任一子樹(shù)亦是堆。
(5)、堆可以視為一棵完全的二叉樹(shù),完全二叉樹(shù)的一個(gè)“優(yōu)秀”的性質(zhì)是,除了最底層之外,每一層都是滿(mǎn)的,這使得堆可以利用
數(shù)組來(lái)表示(普通的一般的二叉樹(shù)通常用鏈表作為基本容器表示),每一個(gè)結(jié)點(diǎn)對(duì)應(yīng)數(shù)組中的一個(gè)元素。

那么堆排序呢?
堆排序其實(shí)就是將一組無(wú)序的序列變成堆的過(guò)程、下面我們一起看看堆排序的算法。
2、堆排序
以最大堆為例,步驟為:
  ① 先將初始文件R[1..n]建成一個(gè)大根堆,此堆為初始的無(wú)序區(qū)
  ② 再將關(guān)鍵字最大的記錄R[1](即堆頂)和無(wú)序區(qū)的最后一個(gè)記錄R[n]交換,由此得到新的無(wú)序區(qū)R[1..n-1]和有序區(qū)R[n],且滿(mǎn)足R[1..n-1].keys≤R[n].key
  ③由于交換后新的根R[1]可能違反堆性質(zhì),故應(yīng)將當(dāng)前無(wú)序區(qū)R[1..n-1]調(diào)整為堆。然后再次將R[1..n-1]中關(guān)鍵字最大的記錄R[1]和該區(qū)間的最后一個(gè)記錄R[n-1]交換,由此得到新的無(wú)序區(qū)R[1..n-2]和有序區(qū)R[n-1..n],且仍滿(mǎn)足關(guān)系R[1..n-2].keys≤R[n-1..n].keys,同樣要將R[1..n-2]調(diào)整為堆。
  ……
  直到無(wú)序區(qū)只有一個(gè)元素為止。  
將一個(gè)無(wú)序的序列建成堆的過(guò)程實(shí)際上是一個(gè)反復(fù)篩選的過(guò)程。若將此序列看作是一棵完全二叉樹(shù),則最后一個(gè)非終端結(jié)點(diǎn)是[n/2](不大于n/2的整數(shù)),因此篩選過(guò)程只需從[n/2]開(kāi)始。要建成一個(gè)大頂堆,即先選擇一個(gè)值最大的元素并與序列中的最后一個(gè)元素交換,然后對(duì)序列前n-1元素進(jìn)行篩選,從新調(diào)整為一個(gè)大頂堆,直到結(jié)束。 
算法描述如下: 
  
typedef   int[]   Elem;//采用順序存儲(chǔ)表示完全二叉樹(shù) 

void   HeapAdjust(Elem   &e,int   s,int   m) 
{//e中s...m的元素除e[s]之外已經(jīng)滿(mǎn)足堆的定義(e[i] <=e[2*i]&&e[i] <=e[2*i+1] 
  //或e[i]> =e[2*i]&&e[i]> =e[2*i+1]),調(diào)整e[s]使的e[s...m]成為一個(gè)大頂堆。 
      selem=e[s]; 
      for(i=2*s;i <=m;i*=2)//沿著值較大的元素(結(jié)點(diǎn))向下篩選 
      { 
            if(i <m   &&   e[i] <e[i+1])++i;//i為值較大的元素下標(biāo) 
            if(selem> =e[i])break; 
            e[s]=e[i]; 
            s=i; 
        } 
      e[s]=selem; 
} 

void   HeapSort(Elem   &e) 
{//對(duì)順序表排序 
    for(i=e.length/2;i> 0;--i) 
            HeapAdjust(e,i,e.length); 
    for(i=e.length;i> 1;--i) 
    { 
          temp=e[1];                     //將堆中的最后一個(gè)元素與第一個(gè)元素交換 
          e[1]=e[i]; 
          e[i]=temp; 
          HeapAdjust(H,1,i-1);//調(diào)整1..i-1的元素成為大頂堆 
      }     
}


/////////////////////////////////////////////////////////////
使用堆排序注意的問(wèn)題:::
1、序列是從1開(kāi)始的。,注意定義,R[1..n],故要空出R[0]。
2、堆排序算法分為兩部分:建立大頂堆和排序。
3、排序的最壞時(shí)間復(fù)雜度為O(nlogn)。堆序的平均性能較接近于最壞性能。
4、由于建初始堆所需的比較次數(shù)較多,所以堆排序不適宜于記錄數(shù)較少的文件。
5、 堆排序是就地排序,輔助空間為O(1), 它是不穩(wěn)定的排序方法。

問(wèn)題:當(dāng)序列空間為R[0,1....n];時(shí),該怎么去使用堆排序呢?元素后移一位,這明顯不是一個(gè)好方法。
posted on 2011-10-01 16:55 Yu_ 閱讀(1139) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): 數(shù)據(jù)結(jié)構(gòu)
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产视频一区在线观看一区免费| 亚洲欧洲日本mm| 亚洲精品国久久99热| 亚洲欧美中文日韩在线| 亚洲一级片在线看| 亚洲欧美视频一区| 久久国产视频网| 久久久久久久久久久久久9999| 久久久久国色av免费观看性色| 久久手机精品视频| 最新69国产成人精品视频免费| 亚洲精品少妇30p| 一区二区冒白浆视频| 在线亚洲欧美专区二区| 亚洲免费影视| 噜噜噜噜噜久久久久久91| 欧美日韩亚洲一区三区| 国产精品hd| 亚洲成色777777在线观看影院| 亚洲乱码国产乱码精品精 | 一道本一区二区| 亚洲一区在线直播| 欧美主播一区二区三区美女 久久精品人 | 欧美 日韩 国产一区二区在线视频| 卡一卡二国产精品| 亚洲国产精品美女| 午夜伦欧美伦电影理论片| 美腿丝袜亚洲色图| 国产精品永久免费观看| 亚洲激情第一区| 久久精品国产v日韩v亚洲 | 香蕉成人久久| 欧美日韩不卡合集视频| 激情视频一区| 先锋a资源在线看亚洲| 欧美激情视频给我| 午夜在线一区| 欧美午夜宅男影院在线观看| 在线观看欧美| 久久精品国产免费看久久精品| 亚洲精品久久久久久久久久久久久 | 亚洲精选一区| 蜜臀久久99精品久久久画质超高清| 国产精品免费福利| 99在线精品视频在线观看| 另类天堂视频在线观看| 午夜精品久久久久久久99黑人| 欧美日韩亚洲视频| 一二三四社区欧美黄| 欧美国产日韩一区二区| 久久久久九九九| 国产在线国偷精品产拍免费yy| 香蕉乱码成人久久天堂爱免费| 亚洲精选一区二区| 欧美日韩在线播| 一区二区三区四区国产精品| 欧美黑人在线观看| 欧美大片国产精品| 日韩视频在线一区二区| 91久久精品日日躁夜夜躁国产| 久久亚洲综合色| 影音先锋久久| 欧美电影美腿模特1979在线看| 久久久综合激的五月天| 狠狠色丁香婷婷综合| 久久综合999| 免费亚洲一区| 亚洲免费成人| 国产欧美一区二区精品性| 国产精品露脸自拍| 亚洲欧美日韩直播| 亚洲一区二区免费在线| 国产女同一区二区| 久久久久久久999精品视频| 香蕉乱码成人久久天堂爱免费 | 久久久免费观看视频| 欧美在线亚洲在线| 亚洲国产欧洲综合997久久| 欧美高清在线一区| 欧美人妖在线观看| 欧美一级片在线播放| 久久久欧美精品| 夜夜嗨av一区二区三区网页| 亚洲视频中文字幕| 精品不卡一区二区三区| 91久久久久久久久久久久久| 欧美天堂亚洲电影院在线观看 | 久久国产手机看片| 在线看一区二区| 亚洲日韩欧美视频一区| 欧美性大战久久久久久久| 久久av红桃一区二区小说| 久久五月天婷婷| 亚洲欧美春色| 你懂的视频欧美| 午夜精品久久久久久久99樱桃 | 午夜免费日韩视频| 亚洲国产精品免费| 亚洲免费av网站| 好看的日韩av电影| 亚洲精品在线观看视频| 国产午夜精品在线| 日韩视频在线免费| 在线观看日韩一区| 亚洲欧美国产精品桃花| 亚洲免费精彩视频| 久久久久国产精品一区二区| 亚洲在线免费观看| 欧美高清日韩| 男女激情视频一区| 国产视频欧美视频| 一本色道久久综合亚洲精品婷婷 | 欧美在线一级va免费观看| 亚洲毛片在线免费观看| 欧美影院成年免费版| 亚洲视频一区二区| 欧美成人69| 免费欧美电影| 国产一区在线观看视频| 国产视频自拍一区| 亚洲一区三区视频在线观看| 久久麻豆一区二区| 久久狠狠婷婷| 国产精品视频久久久| 亚洲精品国产视频| 亚洲激情啪啪| 久久综合99re88久久爱| 久久久久久日产精品| 国产农村妇女精品一区二区| 宅男噜噜噜66一区二区| 中文在线不卡视频| 欧美日韩精品系列| 亚洲精品国产欧美| 夜久久久久久| 欧美日韩亚洲成人| 99精品国产在热久久婷婷| 亚洲美女av黄| 欧美精品一区视频| 日韩一区二区精品在线观看| 日韩视频第一页| 欧美日韩高清在线一区| 亚洲美女电影在线| 亚洲一级电影| 国产精品综合不卡av| 欧美伊久线香蕉线新在线| 久久久午夜电影| 在线 亚洲欧美在线综合一区| 久久久久久久激情视频| 欧美成人精品高清在线播放| 亚洲第一伊人| 欧美极品在线视频| 中文亚洲欧美| 久久精品国产清自在天天线| 国产亚洲欧美日韩在线一区| 欧美一区午夜精品| 男女精品视频| 日韩视频一区二区三区| 欧美视频三区在线播放| 亚洲欧美日韩国产综合精品二区| 久久精品三级| 亚洲欧洲日本国产| 国产精品久久久久久一区二区三区| 亚洲在线国产日韩欧美| 久久午夜激情| 999亚洲国产精| 国产伦精品一区二区三区视频孕妇 | 午夜精品久久久久久久久| 国产午夜精品美女视频明星a级| 久久躁狠狠躁夜夜爽| 亚洲最新在线视频| 久久蜜桃av一区精品变态类天堂| 亚洲国产精品免费| 国产精品婷婷| 欧美1区2区视频| 亚洲欧美另类国产| 亚洲国产精品一区二区第四页av| 亚洲午夜精品| 136国产福利精品导航网址| 欧美三区在线| 久久综合久久综合久久综合| 一区二区三区成人| 欧美电影电视剧在线观看| 午夜在线精品| 在线视频欧美精品| 亚洲国产精品免费| 韩国亚洲精品| 欧美国产视频在线| 欧美伦理在线观看| 久久精品91| 亚洲婷婷综合久久一本伊一区| 久久婷婷蜜乳一本欲蜜臀| 亚洲天堂免费观看| 亚洲激情在线激情| 国内精品免费在线观看| 国产精品国产自产拍高清av| 欧美成人精品三级在线观看| 久久成人免费日本黄色| 亚洲午夜高清视频| 日韩系列欧美系列| 亚洲精品午夜|