核心code:
package com.sort;
public class heapsort {
public static void main(String[] args) {
int[] a = {1, 4, 3, 5, 2, 7, 12, 45, 13, 754, 124, 754, 6, 32, 45, 1};
heap(a);
for (int b : a) System.out.println(b);
}
public static void heap(int[] a){
for (int i = a.length/2; i >= 0; i--) {
dfs(a,i,a.length);
}
int len = a.length;
for (int i = a.length-1; i > 0 ; i--) {
a[i] ^= a[0];
a[0] ^= a[i];
a[i] ^= a[0];
len--;
dfs(a,0,len);
}
}
public static void dfs(int[] a ,int i,int len){
int left = i*2 +1;
int right = left + 1 ;
int dad = i;
if(left