哔哔one
你要的堆排,JAVApublic class 堆排 { public static void main(String[] args) { int [] arr= {0,5,3,2,6,7}; HeapSort(arr); for(int s:arr){ System.out.println(s); } } public static void BuildHeap(int[] arr,int s,int length){ int temp = arr[s]; for(int j = s*2 +1 ; j<length;j = j*2 +1){ if(j+1<length && arr[j]>arr[j+1]){ j++; } if(temp < arr[j]){ break; } arr[s] = arr[j]; s = j; } arr[s] = temp; } public static void HeapSort(int[] arr){ for(int i = (arr.length)/2-1;i>=0;i--){ BuildHeap(arr, i, arr.length); } for(int i = arr.length - 1;i>=0;i--){ if(arr[0]!= arr[i]){ arr[i] ^= arr[0]; arr[0] ^= arr[i]; arr[i] ^= arr[0]; } BuildHeap(arr, 0, i); } }}