排序之堆排序

来源:互联网 发布:中国人民航空大学知乎 编辑:程序博客网 时间:2024/06/10 04:38
public class HeapSort {public static void sort(int[] array){int len = array.length;for(int i = len/2-1; i>=0; i--)heapAdjust(array,i,len);for(int j = len-1; j>=1; j--){swap(array,0,j);heapAdjust(array,0,j);}for(int i = 0; i<len; i++)System.out.println(array[i]);}public static void heapAdjust(int[] array, int i,int len){int left = 2*i+1;int right = 2*i+2;int max = i;if(left<len)max = array[left]>array[max]?left:max;if(right<len)max = array[right]>array[max]?right:max;if(max!=i){swap(array,max,i);heapAdjust(array,max,len);}}static void  swap(int[] array,int i, int j){int temp = array[i];array[i] = array[j];array[j] = temp;}}

原创粉丝点击