国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java堆排序概念原理介紹

java堆排序概念原理介紹

2021-06-07 13:58Java教程網 Java教程

在本篇文章里我們給大家分享了關于java堆排序的概念原理相關知識點內容,有需要的朋友們可以學習下。

堆排序介紹:

堆排序可以分為兩個階段。在堆的構造階段,我們將原始數組重新組織安排進一個堆中;然后在下沉排序階段,我們從堆中按順序取出所有元素并得到排序結果。

1.堆的構造,一個有效的方法是從右到左使用sink()下沉函數構造子堆。數組的每個位置都有一個子堆的根節點,sink()對于這些子堆也適用,如果一個節點的兩個子節點都已經是堆了,那么在該節點上調用sink()方法可以把他們合并成一個堆。我們可以跳過大小為1的子堆,因為大小為1的不需要sink()也就是下沉操作,有關下沉和上浮操作可以參考我寫的優先隊列那篇。

2.堆的排序,我們通過第一步操作構造了一個堆,在這個堆中,根節點永遠是最大值的節點,所以我們把根節點的值與數組最后的值進行交換,在使用sink()下沉來維護堆的結構即可。

具體代碼實現:

java" id="highlighter_120917">
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
public class pqsort{
  public static void main(string[] args){
    int[] a = {9,1,7,5,3,9,12,56,21,45};
    sort(a);
    for(int i=0;i<a.length;i++) {
      system.out.print(a[i]+" ");
    
  }
  //排序方法
  public static void sort(int[] a){
      int n = a.length-1;
      //通過下沉操作構造堆,因為下標從0開始,所以子節點為2*k+1和2*k+2;
      for(int k = (n-2)/2;k>=0;k--){
        sink(a,k,n);
      }
      //通過不斷把堆中最大值放到數組的后面來排序
      while(n>0){
        exch(a,0,n--);
        sink(a,0,n);
      }
  }
  //下沉函數
  private static void sink(int[] a, int i, int n){
    while(2*i+1<=n){
      int j = 2*i+1;
      if(j<n&&a[j]<a[j+1]) j++;
      if(a[i]>a[j]) break;
      exch(a,i,j);
      i=j;
    }
  }
  //交換函數
  private static void exch(int[] a, int i, int j){
    int temp = a[i];
    a[i] = a[j];
    a[j] = temp;
  }
}

運行結果:

java堆排序概念原理介紹

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 国产成人天天爽高清视频 | 性色av一区二区三区红粉影视 | 91久久久久久久久久久 | 欧美激情一区二区 | 国产精品久久精品 | 免费亚洲网站 | 中文字幕一区二区三区在线视频 | 三区视频 | 色吧欧美| 神马影院一区二区三区 | 久久专区 | а天堂中文官网 | 天天爽视频 | 91精品国产综合久久久久久丝袜 | 午夜精品视频在线观看 | 免费的av | 91在线免费视频 | 国产一区二区三区四区 | 91精品国产高清久久久久久久久 | 亚洲国产精品久久久久秋霞蜜臀 | 国产色网 | 91性高湖久久久久久久久网站 | 国产欧美日韩精品一区 | 久久精品视频网站 | 亚洲一区二区三区视频 | 国产精品美女久久久久久久久久久 | 亚洲精品在线播放 | 日韩h视频 | 日韩精品一区二区三区在线观看 | 婷婷精品 | 91精品中文字幕一区二区三区 | 中文字幕在线免费看 | 精品96久久久久久中文字幕无 | 日韩精品三区 | 午夜亚洲| 秋霞特色aa大片 | 亚洲精品成人av | 久色| 国产毛片视频 | 日韩午夜影院 | 成人九九视频 |