亚洲情人网-亚洲情人-亚洲欧洲综合-亚洲欧洲自拍-欧美专区亚洲

堆排序代碼解析(堆排序的算法及代碼實現)

  • 生活
  • 2023-04-25 12:31

多條告白如次劇本只需引入一次

暫時這個系列的作品都挑著特殊典范的,讓人暫時一亮的算法,即日的堆排序算法即是個中一個。開始領會什么是堆,這內里堆(Heap)并不是步調中外存地區,而是一種實足二叉樹表白的數據構造。堆具備以次特性

是一個實足二叉樹堆的每個節點的值必需大于即是安排樹節點(大頂堆),或小于即是安排樹節點(小頂堆)。大略證明下,實足二叉樹是除去結果一層葉子節點外,其余的節點都有兩個子樹,而葉子節點不妨沒有子樹,大概惟有左子樹。如次圖即是個大頂堆:

小頂堆

堆保存

堆由于是實足二叉樹,特殊符合用數組保存,上海圖書館為大頂堆的保存情景,個中a[0]不必,a[1]為大頂堆的極點,也即是最大的數據,a[12]=7為左子樹極點,a[12+1]=6為右子樹的極點,其余節點情景順序類比。

堆的兩種操縱

向堆插入元素

用圖來表白如次:

向堆插入元素,先插入到結果一個數組元素場所,而后和本人的父節點6比擬,因為比6大不滿意大頂堆的前提,以是9和6調換,而后9再和堆頂元素8比擬,又不滿意大頂堆前提,連接調換,結果產生一個大頂堆,這個辦法叫堆化。

簡略堆頂元素

對于大頂堆來說,堆頂的元素為最大值,順序簡略堆頂元素并輸入,那么即是將數字從大向小陳設了。

這內里又個本領,即是簡略堆頂元素的功夫,不許徑直簡略,要用堆頂元素和結果一個元素做調換,而后按照堆的特性安排堆,直到滿意前提。

完備代碼如次:

packagecom.dianneng.lms;publicclassTestHeap{privateint[]a;privateintn;privateintcount;publicTestHeap(intcap){a=newint[cap+1];n=cap;count=0;}publicvoidswap(inti,intj){inttmp=a[i];a[i]=a[j];a[j]=tmp;return;}publicvoidprint(){for(inti=0;i<=count;i++){System.out.print(a[i]+"t");}}publicintinsert(intv){if(count==n){System.out.println("Heapisfull!");return-1;}else{a[++count]=v;inti=count;while(i/2>0&&a[i]>a[i/2]){swap(i,i/2);i=i/2;}}return0;}publicintremoveMax(){if(count==0){return-1;}System.out.print(a[1]+"t");a[1]=a[count];--count;heapify(count,1);return0;}privatevoidheapify(intn,inti){while(true){intmaxPos=i;//經過安排子樹極點比擬贏得最大數節點if(i*2<=n&&a[i]<a[i*2]){maxPos=i*2;}if(i*2+1<=n&&a[maxPos]<a[i*2+1]){maxPos=i*2+1;}//仍舊是最大的不必調換了if(maxPos==i){break;}//須要調換swap(i,maxPos);//i指向待調換的i=maxPos;}}publicstaticvoidmain(String[]args){TestHeapth=newTestHeap(18);th.insert(8);th.insert(7);th.insert(6);th.insert(5);th.insert(4);th.insert(3);th.print(

猜你喜歡

主站蜘蛛池模板: 亚洲电影在线观看 | 国内自拍视频在线观看 | 久久亚洲不卡一区二区 | 在线精品自拍 | 欧美精品久久久久久久小说 | 美女下部隐私免费网站视频 | 欧美在线视频一区二区 | 羞羞视频网页 | 免费羞羞视频网站 | 色五五月 | 中文在线观看永久免费 | 亚洲视频网址 | 欧美网站色 | 日本国产在线 | 亚洲欧美一区二区三区在线播放 | 亚洲免费在线观看 | 伊人网免费视频 | 小视频在线播放 | 欧美图片自拍偷拍 | 亚洲精品在线免费观看视频 | 欧美日韩精品一区二区视频在线观看 | 伊人五月婷婷 | 亚洲第一区精品观看 | 国内自拍偷拍 | 亚洲男人网 | 一区在线免费 | 国产精品一区二区久久精品 | 日韩综合网站 | 自拍偷拍 欧美日韩 | 欧美日本亚洲国产一区二区 | 精品麻豆 | 午夜欧美性视频在线播放 | 中文字幕精品1在线 | 国产精品久久久精品视频 | 国产免费资源高清小视频在线观看 | 99精品欧美一区二区三区综合在线 | 最近高清中文在线国语电影 | 久久久亚洲欧洲日产国码二区 | 亚洲欧美日韩综合在线 | 亚洲欧美视频在线 | 亚洲精品视频免费看 |