public class HeapSort {
public static void main(String[] args) {
int[] arr={2,3,1,4,7,5}
new HeapSort().sort(arr)
}
public void sort(int[] arr){
int n=arr.length
for(int i=n/2-1
heapify(arr,n,i)
}
for(int i=n-1
int tmp=arr[i]
arr[i]=arr[0]
arr[0]=tmp
heapify(arr,i,0)
}
}
private void heapify(int[] arr,int n,int i){
int max=i
int left=2*i+1
int right=2*i+2
if(left<n&&arr[left]>arr[max])
max=left
if(right<n&&arr[right]>arr[max])
max=right
if(max!=i){
int tmp=arr[max]
arr[max]=arr[i]
arr[i]=tmp
heapify(arr,n,max)
}
}
}