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;
}
}
}
}
}