堆排序
2018-03-12 12:18
155 查看
import java.util.*; public class HeapSorting{ public static void adajustHeap(int[] l,int i,int length){ for(int k=2*i+1;k<length;k++){ if(k+1<length && l[k]<l[k+1]) k++; if(l[i]<l[k]){ swap(l,i,k); adajustHeap(l,k,length); } else{ break; } } } public static void swap(int[] l,int i,int j){ int temp=l[i]; l[i]=l[j]; l[j]=temp; } public static void sort(int[] l){ for(int k=l.length/2-1;k>=0;k--){ adajustHeap(l,k,l.length); } System.out.println(Arrays.toString(l)); for(int j=l.length-1;j>=0;j--){ swap(l,0,j); adajustHeap(l,0,j); } } public static void main(String[] args){ int[] a={9,8,7,6,5,4,3,2,1}; sort(a); System.out.println(Arrays.toString(a)); } }