public class heapSort {
public static void main(String[] args) {
int[] arr = new int[]{2,3,7,9,5,7,0,3,5,7,9,2,4};
heapsort(arr);
for(int x:arr){
System.out.println(x);
}
}
public static void heapsort(int[] arr) {
int n = arr.length;
for(int i = (n-1)/2; i>=0; i--){
heapify(arr,i,n-1);
}
for(int i = n-1; i > 0; i--){
int temp = arr[0];
arr[0] = arr[i];
arr[i] = temp;
heapify(arr,0,i-1);
}
}
public static void heapify(int[] arr,int parent,int n){
int lchild = parent*2+1;
int temp = parent;
while (lchild <= n){
if(arr[lchild] > arr[parent]){
parent = lchild;
}
if(lchild+1 <= n && arr[lchild+1] > arr[parent] ){
parent = lchild+1;
}
if(parent != temp){
int t = arr[temp];
arr[temp] = arr[parent];
arr[parent] = t;
temp = parent;
lchild = parent*2+1;
}else{
break;
}
}
}
}
heapsort
最新推荐文章于 2024-07-13 23:16:13 发布