亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

JAVA算法起步之堆排序實例

2019-11-26 15:42:40
字體:
來源:轉載
供稿:網友

學習堆排序,首先需要明白堆的概念,堆是一個數組。可以近似當做完全二叉樹的數組存儲方式。但是跟他還有其他的性質,就是類似于二叉排序樹。有最大堆跟最小堆之分,最大堆是指根節點的值都大于子節點的值,而最小堆的是根節點的值小于其子節點的值。堆排序一般用的是最大堆,而最小堆可以構造優先隊列。堆里面有一個方法是用來維護堆的性質,也就是我們下面代碼中的maxheap方法,這是維護最大堆性質的方法,第一個參數就是堆也就是數組,第二個參數是調整堆的具體節點位置,可能這個節點的值不符合最大堆的性質,那么這個值得位置就作為參數,而size其實是堆內實際存儲的有效元素個數??赡軘到M的長度就是堆內實際存儲的元素個數,但是不一定所有的數據我們都需要進行構建最大堆。算法導論中說的得到左子結點是2xi但是我們數組是從0開始計數的,所以左子結點就成了2xi+1,buildheap就是構建一個最大堆,我們去2分之長度的原因是,這些點的子節點都是葉子節點,所以我們通過從下向上進行排序來構建一個最大堆。保證了我們堆內所有節點都滿足最大堆性質。最后堆排序就是把第一個節點取出來,將剩下的節點再進行堆排序,再取出根節點。這樣保證我們每次取出都是最大值。

復制代碼 代碼如下:

public class HeapSort {
 private int getLeft(int i){
  return 2*i+1;
 }
 private int getRight(int i){
  return 2*i+2;
 }
 public void maxheap(int[] heap,int loc,int size){
  int l=getLeft(loc);
  int r=getRight(loc);
  int largest=loc;
  if(l<size&&heap[l]>heap[loc]){
   largest=l;
  }
  if (r<size&&heap[r]>heap[largest]) {
   largest=r;
  }
  if(largest!=loc){
   int cache=heap[loc];
   heap[loc]=heap[largest];
   heap[largest]=cache;
   maxheap(heap, largest, size);
  }
 }
 public void buildheap(int[] heap){
  for(int i=heap.length/2;i>=0;i--){
   maxheap(heap, i, heap.length);
  }
 }
 public void sort(int[] heap){
  buildheap(heap);
  for(int i=heap.length-1;i>1;i--){
   int cache=heap[0];
    heap[0]=heap[i];
    heap[i]=cache;
   maxheap(heap, 0,i );
  }
  int cache=heap[0];
   heap[0]=heap[1];
   heap[1]=cache;

 }

 public static void main(String[] args) {
  int[] heap=new int[]{4,1,5,3,7,12,65,7};
  HeapSort hs=new HeapSort();
  hs.sort(heap);
  for (int i = 0; i < heap.length; i++) {
   System.out.println(heap[i]);
  }
 }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美成人性色生活仑片| 国产精品va在线播放我和闺蜜| 国产精品视频免费在线观看| 亚洲国产中文字幕在线观看| 91精品国产色综合久久不卡98口| 日韩有码片在线观看| 亚洲剧情一区二区| 久久99久久99精品免观看粉嫩| 日韩精品在线视频美女| 亚洲欧美日韩国产中文专区| 日韩高清免费观看| 国产精品视频26uuu| 国产一区二区三区久久精品| 欧美日韩免费网站| 日韩高清人体午夜| 成人精品久久av网站| 国产在线观看精品| www.久久久久久.com| 隔壁老王国产在线精品| 一色桃子一区二区| yellow中文字幕久久| 欧美夫妻性生活视频| 夜夜嗨av一区二区三区免费区| 蜜臀久久99精品久久久久久宅男| 亚洲女成人图区| 色婷婷**av毛片一区| 国产精品久久久久久久一区探花| 国产精品视频内| 日韩欧美在线观看视频| 午夜精品视频网站| 日韩中文字幕不卡视频| 欧美性在线观看| 国产成人精品久久二区二区91| 欧美国产高跟鞋裸体秀xxxhd| 黄色一区二区在线观看| 日韩av三级在线观看| 欧美视频裸体精品| 色哟哟网站入口亚洲精品| 欧美日韩国产成人在线| 久久精品国产96久久久香蕉| 亚洲成人精品久久| 国产一区欧美二区三区| 亚洲一级片在线看| 国产精品自拍偷拍| 亚洲一区二区三区777| 国产精品www网站| 午夜精品久久久99热福利| 91午夜理伦私人影院| 欧美激情xxxx| 欧美中文字幕在线观看| 97免费中文视频在线观看| 中文字幕亚洲激情| 日韩久久免费视频| 欧美激情一级精品国产| 韩国三级电影久久久久久| 77777亚洲午夜久久多人| 亚洲一区二区三区sesese| 欧美激情亚洲精品| 爽爽爽爽爽爽爽成人免费观看| 国产精品h在线观看| 综合网中文字幕| 日韩精品欧美国产精品忘忧草| 国产69精品久久久久99| 日韩电影中文字幕| 国产视频999| 久久精品中文字幕免费mv| 国模gogo一区二区大胆私拍| 精品无人区太爽高潮在线播放| 亚洲国产精品久久91精品| 91精品国产99| 欧美福利视频在线| 美日韩精品免费观看视频| 神马国产精品影院av| 日韩电影视频免费| 久久精品一本久久99精品| 亚洲一区二区三| 久久91精品国产91久久跳| 国外色69视频在线观看| 国产精品国产自产拍高清av水多| 日韩大陆欧美高清视频区| 国产精品中文字幕在线| 国产这里只有精品| 国产精品久久av| 北条麻妃久久精品| 日本午夜在线亚洲.国产| 在线观看日韩专区| 成人欧美在线视频| 日本高清不卡的在线| 久久香蕉国产线看观看网| 国产精品老女人视频| 亚洲欧美国产高清va在线播| 国产精品电影一区| 91在线精品视频| 久久久久久12| 色综合色综合久久综合频道88| 91午夜理伦私人影院| 欧美性xxxxhd| 97视频在线观看免费| 欧美黑人性生活视频| 久久久精品中文字幕| 久久精品国产电影| xxxxxxxxx欧美| 亚洲欧美一区二区激情| 91九色视频导航| 久久香蕉国产线看观看av| 美女视频黄免费的亚洲男人天堂| 亚洲一区二区三区香蕉| 一区二区三区国产在线观看| 欧美日韩另类字幕中文| 国产精品www网站| 国产精品视频午夜| 久色乳综合思思在线视频| 亚洲春色另类小说| 91精品视频大全| 久久伊人精品一区二区三区| 亚洲女人被黑人巨大进入| 日韩精品中文字幕视频在线| 中文国产成人精品| 欧美精品一本久久男人的天堂| 国内揄拍国内精品| 国产一区视频在线播放| 欧美一级在线播放| 国产精品欧美一区二区| 国产丝袜一区视频在线观看| 欧美一级淫片aaaaaaa视频| 国产精品久久久久久久久久久不卡| 国产一区在线播放| 成人xxxx视频| 日韩精品中文字幕久久臀| 18久久久久久| 亚洲毛片在线观看| 福利一区福利二区微拍刺激| 日韩国产激情在线| 欧美激情欧美激情在线五月| 九九九久久久久久| 少妇精69xxtheporn| 国产日韩精品在线| 日韩欧美亚洲一二三区| 91经典在线视频| 日韩精品在线免费播放| 国产精品一区二区av影院萌芽| 伊人伊成久久人综合网站| 久久精品国产亚洲精品2020| 黑人巨大精品欧美一区二区| 久久久人成影片一区二区三区观看| 亚洲国产精品大全| 亚洲色图50p| 91国内精品久久| 亚洲视频电影图片偷拍一区| 4p变态网欧美系列| 亚洲欧美一区二区精品久久久| 91精品国产一区| 成人黄色中文字幕| 日韩www在线| 国产精品电影网| 亚洲精品v欧美精品v日韩精品| 亚洲韩国日本中文字幕| 在线观看视频亚洲| 欧美日韩免费看| 超碰精品一区二区三区乱码| 26uuu另类亚洲欧美日本一| 国产精品一区二区三区免费视频| 久久夜色精品国产欧美乱| 日本免费一区二区三区视频观看|