子、父结点

代码
public class duiSort {
public static void adJust(int[] array,int start,int end){
int tmp = array[start];
for(int i = 2*start+1;i <= end;i = 2*i+1){
if(i < end && array[i] < array[i+1]){
i++;
}
if(array[i] > tmp){
array[start] = array[i];
start = i;
}
if(array[i] < tmp){
break;
}
}
array[start] = tmp;
}
public static void heapSort(int[] array){
for(int i = (array.length-1-1)/2;i >= 0;i--){
adJust(array, i, array.length-1);
}
int tmp = 0;
for(int j = 0;j < array.length-1;j++){
tmp = array[0];
array[0] = array[array.length-1-j];
array[array.length-1-j] = tmp;
adJust(array, 0, array.length-1-1-j);
}
}
public static void main(String[] args) {
int[] array = {45,12,46,5,13,47,2,33,8,24};
heapSort(array);
System.out.println(Arrays.toString(array));
}
}
运行结果
