java吧 关注:1,246,260贴子:12,724,677
  • 1回复贴,共1

j8的大神们帮帮我啊

只看楼主收藏回复

不知道为什么出现了 error: class, interface, or enum expected错误,小弟学java不久,从没碰到这种错误,怎么解决啊?代码在此:
import java.util.Arrays;
public class tryheapsort {
public static void main(String[] args) {
int num = args.length == 1 ? Integer.parseInt(args[0]) : 10;
Integer[] atry = new Integer[num];
Random rand = new Random(1);
int i;
for (i=0; i<atry.length; i++){
System.out.println(atry[i]);
}
heapSort(atry);
for (i=0; i<atry.length; i++){
System.out.println(atry[i]);
}
}
}
public static <T extends Comparable<? super T>> void heapSort(T[] array) {
if (array == null || array.length <= 1) {
return;
}
buildHeap(array, array.length);
for (int i = array.length - 1; i >= 1; i--) {
exchangeElements(array, 0, i);
buildHeap(array, i);
}
}
public static void exchangeElements(int[] array, int index1, int index2) {
int temp = array[index1];
array[index1] = array[index2];
array[index2] = temp;
}
private static void buildHeap(int[] array, int size) {
if (array == null || size <= 1) {
return;
}
int half = (size-1) / 2;
for (int i = half; i >= 0; i--) {
maxHeap(array, size, i);
}
}
private static void maxHeap(int[] array, int heapSize, int index) {
int left = index * 2 + 1;
int right = index * 2 + 2;
int largest = index;
if (left < heapSize && array[left] > array[index]) {
largest = left;
}
if (right < heapSize && array[right] > array[largest]) {
largest = right;
}
if (index != largest) {
ArrayUtils.exchangeElements(array, index, largest);
}
}


1楼2016-11-10 09:51回复


    2楼2016-11-10 10:01
    回复