堆排序
2017-09-13 10:22
29 查看
package base; import java.util.Arrays; /** * Created by shanks on 17/8/5. */ public class HeapSort { public static void main(String[] args) { int a[] = { 16, 7, 17, 3, 8, 20,15 }; System.out.println(Arrays.toString(a)); heapSort(a); System.out.println(Arrays.toString(a)); } public static void heapSort(int[] array) { int i; for(i=array.length/2-1;i>=0;i--){ adjastHeap(array, i, array.length); } for (i=array.length-1;i>0;i--){ int temp=array[0]; array[0]=array[i]; array[i]=temp; adjastHeap(array, 0, i); } } public static void adjastHeap(int[] array,int i,int len){ int temp=array[i]; for (int j=i*2+1;j<len;j=j*2+1){ if(j+1<len && array[j]<array[j+1]){ j++; } if(array[j]>temp){ array[i]=array[j]; i=j; }else{ break; } } array[i]=temp; } }