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

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

(2)若將此序列所存儲的向量R[1..n]看做是一棵完全二叉樹的存儲結構,則堆實質上是滿足如下性質的完全二叉樹:
  樹中任一非葉結點的關鍵字均不大于(或不小于)其左右孩子(若存在)結點的關鍵字。

(3)、根結點(亦稱為堆頂)的關鍵字是堆里所有結點關鍵字中最小者的堆稱為小根堆,又稱最小堆。根結點(亦稱為堆頂)的關鍵字是堆里所有結點關鍵字中最大者,稱為大根堆,又稱最大堆。

(4)、堆中任一子樹亦是堆。
(5)、堆可以視為一棵完全的二叉樹,完全二叉樹的一個“優秀”的性質是,除了最底層之外,每一層都是滿的,這使得堆可以利用
數組來表示(普通的一般的二叉樹通常用鏈表作為基本容器表示),每一個結點對應數組中的一個元素。

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

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

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


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

問題:當序列空間為R[0,1....n];時,該怎么去使用堆排序呢?元素后移一位,這明顯不是一個好方法。
posted on 2011-10-01 16:55 Yu_ 閱讀(1163) 評論(0)  編輯 收藏 引用 所屬分類: 數據結構
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美一级播放| 久久久91精品国产一区二区精品| 免费成人av| 久久久久九九视频| 亚洲第一福利社区| 欧美电影在线免费观看网站| 久久久久综合网| 亚洲精品系列| 中日韩男男gay无套 | 久久日韩粉嫩一区二区三区| 欧美一区二区在线观看| 国产亚洲欧美日韩美女| 久久婷婷国产综合国色天香| 久久久久久久激情视频| 亚洲国产视频a| 亚洲精品乱码久久久久| 欧美欧美天天天天操| 一本不卡影院| 午夜性色一区二区三区免费视频| 国产揄拍国内精品对白| 欧美va亚洲va香蕉在线| 欧美日韩国产经典色站一区二区三区| 亚洲伊人伊色伊影伊综合网| 欧美一区二区视频在线观看| 亚洲国产精品成人综合色在线婷婷| 欧美高清视频在线播放| 欧美视频第二页| 久久久久国产一区二区三区| 免费成人高清视频| 性欧美超级视频| 久久婷婷成人综合色| 一区二区三区四区国产精品| 欧美一区二区精品| 亚洲国产高清高潮精品美女| 亚洲一区二区网站| 一区二区三区国产盗摄| 欧美电影在线观看| 国产精品福利久久久| 久久精品视频免费| 欧美日韩成人在线| 猫咪成人在线观看| 欧美视频一区二区在线观看 | 亚洲国产日韩欧美| 99在线精品视频在线观看| 国产一区二区三区在线观看视频 | 亚洲系列中文字幕| 亚洲观看高清完整版在线观看| 亚洲美女福利视频网站| 精品51国产黑色丝袜高跟鞋| 制服丝袜激情欧洲亚洲| 亚洲精品国久久99热| 久久福利精品| 午夜精品免费视频| 欧美日韩免费| 亚洲激情电影中文字幕| 亚洲国产精品成人久久综合一区| 亚洲欧美综合国产精品一区| 亚洲神马久久| 欧美日韩国产123| 亚洲丰满在线| 亚洲激情在线| 免费在线观看成人av| 麻豆成人综合网| 国产在线精品成人一区二区三区| 中文精品一区二区三区| 亚洲一区二区三区中文字幕在线| 欧美电影在线观看完整版| 欧美大片一区二区| 亚洲国产精品久久久久久女王| 久久精品国产综合精品| 久久久久看片| 激情欧美一区| 久久gogo国模裸体人体| 最新国产の精品合集bt伙计| 久久青草福利网站| 久久国产精彩视频| 欧美日韩中文在线| 欧美国产欧美亚洲国产日韩mv天天看完整 | 亚洲欧洲一区二区三区| 久久精品卡一| 久久精品国产亚洲精品| 国产精品日日做人人爱| 日韩一级精品| 一区二区三区免费网站| 欧美极品一区| 久久久欧美精品sm网站| 国产精品久久久久久久9999| 日韩视频一区二区三区在线播放免费观看 | 欧美影院在线播放| 亚洲无线一线二线三线区别av| 欧美**人妖| 亚洲电影免费观看高清完整版在线观看 | 亚洲精品日韩在线| 日韩一区二区久久| 欧美高潮视频| 亚洲人成网站在线播| 亚洲免费av电影| 免费不卡中文字幕视频| 女同性一区二区三区人了人一| 韩国一区二区三区美女美女秀| 午夜精品在线观看| 久久激五月天综合精品| 国产午夜精品理论片a级大结局| 亚洲欧美另类在线观看| 久久精品99国产精品酒店日本| 国产视频久久久久| 久久www成人_看片免费不卡| 看片网站欧美日韩| 国产主播精品| 久久漫画官网| 亚洲欧洲精品一区二区三区 | 欧美aⅴ99久久黑人专区| 欧美77777| 宅男在线国产精品| 国产酒店精品激情| 久久九九免费| 亚洲精品视频二区| 久久成人精品电影| 国产日韩欧美在线一区| 久久久人人人| 日韩系列欧美系列| 久久久九九九九| 亚洲人体1000| 国产美女精品视频| 久久综合综合久久综合| 亚洲美女av在线播放| 久久精品亚洲精品国产欧美kt∨| 国产视频不卡| 欧美视频不卡| 久热精品在线视频| 一区二区成人精品| 老色批av在线精品| 国产精品99久久久久久久vr| 国产欧美日韩三级| 欧美刺激性大交免费视频 | 亚洲视频网站在线观看| 国产视频精品网| 欧美精品一卡二卡| 久久精品国产在热久久| 日韩亚洲欧美高清| 欧美www在线| 欧美在线免费视屏| 99精品视频免费观看| 国内精品免费午夜毛片| 欧美~级网站不卡| 亚洲欧美中文日韩v在线观看| 91久久精品国产| 久久亚洲图片| 欧美与黑人午夜性猛交久久久| 亚洲精选在线观看| 影音先锋久久资源网| 国产欧美一区二区视频| 欧美日韩一区二区三区四区在线观看 | 久久精品国产免费| 欧美va亚洲va香蕉在线| 午夜免费久久久久| 亚洲视频1区| 99国内精品久久| 亚洲国产综合在线| 在线日韩日本国产亚洲| 国产亚洲精品久| 国产美女精品人人做人人爽| 国产精品久久久久久福利一牛影视 | 国内精品久久久久国产盗摄免费观看完整版| 欧美二区在线播放| 另类图片综合电影| 久久深夜福利免费观看| 久久福利影视| 欧美亚洲专区| 久久riav二区三区| 久久精品国产99国产精品| 亚洲影院高清在线| 亚洲一级高清| 久久激五月天综合精品| 欧美在线免费看| 久久成人在线| 麻豆成人综合网| 欧美精品三级在线观看| 欧美日韩91| 欧美系列一区| 国产麻豆一精品一av一免费| 国产精品午夜在线| 国产欧美一区二区三区久久人妖 | 小黄鸭精品密入口导航| 午夜一级在线看亚洲| 欧美亚洲专区| 久久综合九色综合欧美就去吻| 欧美大秀在线观看 | 中日韩美女免费视频网址在线观看| 亚洲国产日韩一区二区| 国产情人节一区| 国产一区二区福利| 亚洲第一视频| 亚洲视频精品在线| 欧美一区二区三区视频免费播放 | 亚洲国产成人精品视频| 夜夜嗨av一区二区三区网页| 亚洲一区二区三区四区五区午夜| 欧美伊人久久久久久午夜久久久久| 久久亚洲精品视频|