八种排序算法Java实现-堆排序

来源:互联网 发布:淘宝主图视频大小限制 编辑:程序博客网 时间:2024/06/05 09:01

package com.cn;
//swap实现数据交换
public class HeapSort {

public static void heapSort(int[] num) {      for (int i = 0; i < num.length; i++) {          createMaxdHeap(num, num.length - 1 - i);          swap(num, 0, num.length - 1 - i);       }  }  

//大顶堆
public static void createMaxdHeap(int[] num, int len) {
int j;
for (int i = (len- 1) / 2; i >= 0; i–) {
j = i;

        while (2 * j + 1 <= len) {              int maxVal= 2 * k + 1;              if (maxVal< len) {                  if (num[maxval] < num[maxVal+ 1]) {                        maxVal++;                  }              }              if (num[j] < num[maxVal]) {                   swap(num, j, maxVal);                  k = maxVal;              } else {                  break;              }          }      }  }  

}

原创粉丝点击