免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
算法設計與分析 堆排序

import java.util.Arrays;

public class HeapSort {
 
 public static void heapSort(int[] data) {
  heapAdjust(data, 0, data.length - 1);
  for (int i = data.length - 1; i > 0; i--) {
   swap(data, 0, i);
   moveDown(data, 0, i - 1);
  }
 }
 
 /**
  * 自上向下建堆
  * @param data
  * @param start
  * @param end
  */
 private static void heapAdjust(int[] data, int start, int end) {
  int lastBranch = data.length/2 - 1;
  for (int i = lastBranch; i >= 0; i--) {
      moveDown(data, i, data.length - 1);
  }
 }
 
 /**
  * 自上向下調整堆
  * @param data
  * @param first
  * @param last
  */
 private static void moveDown(int[] data, int first, int last) {
  int larger = 2 * first + 1;
  while (larger <= last) {
      if (larger < last && data[larger] < data[larger + 1]) { //find the larger child
          larger++;
      }
   if (data[first] < data[larger]) { //move down on larger child
       swap(data, first, larger);

    first = larger;
    larger = 2 * first + 1;  
   } else {
       larger = last + 1;    //exit the while loop
   }
  }
 }

 private static void swap(int[] data, int i, int j) {
  // swap
  int temp = data[i]; 
  data[i] = data[j];
  data[j] = temp;
 }
 
 public static void main(String[] args) {
  int[] a = {3, 4, 1, 5, 9, 3, 2, 8, 10};
  heapSort(a);
  System.out.println(Arrays.toString(a));
 }
}

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
堆排序(java)
算法導論Java實現-堆排序(6.4章節(jié))
排序1+4:歸并排序(MergeSort)和堆排序(HeapSort)
隊列
快速排序
param (C# Programming Guide)
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服