<terminated> Eclipse中的Java程序,不确定为什么

时间:2018-03-07 11:09:14

标签: java eclipse

欢迎来到我的问题。

我正在做家庭作业,在尝试创建大小为10000的数组后,所有显示的内容都是(终止)BubbleSortApp ...

以下是我正在使用的代码:

这会创建buble sort

// bubbleSort.java
// demonstrates bubble sort
// to run this program: C>java BubbleSortApp
////////////////////////////////////////////////////////////////
class ArrayBub {
    private long[] a; // ref to array a
    private int nElems; // number of data items

public ArrayBub(int max) // constructor
{
    a = new long[max]; // create the array
    nElems = 0; // no items yet
}

public void insert(long value) // put element into array
{
    a[nElems] = value; // insert it
    nElems++; // increment size
}

// --------------------------------------------------------------
public void display() // displays array contents
{
    for (int j = 0; j < nElems; j++) // for each element,
        System.out.print(a[j] + " "); // display it
    System.out.println("");
}

public void bubbleSort() {
    int out, in;
    for (out = nElems - 1; out > 1; out--) // outer loop (backward)
        for (in = 0; in < out; in++) // inner loop (forward)
            if (a[in] > a[in + 1]) // out of order?
                swap(in, in + 1); // swap them
} // end bubbleSort()

private void swap(int one, int two) {
    long temp = a[one];
    a[one] = a[two];
    a[two] = temp;
    }
} // end class ArrayBub

这是驱动程序

    class BubbleSortApp {
        public static void main(String[] args) {
            int maxSize = 101; // array size
            ArrayBub arr; // reference to array
        arr = new ArrayBub(maxSize); // create the array
        for (int j = 0; j <= maxSize-1; j++)// fill array with
        { // random numbers
            long n = (long) (java.lang.Math.random() * (maxSize - 1));
            arr.insert(n^2);
        }
        arr.display(); // display items
        arr.bubbleSort(); // bubble sort them
        arr.display(); // display them again
    } // end main()
} // end class BubbleSortApp

我查看了stackoverflow和其他地方,并没有看到有帮助的答案。

为什么它根本不显示数字?我测试了不同的数字,我注意到6624是我可以创建的最大maxSize来显示数字。任何更多,它只是说终止。我该如何解决?

1 个答案:

答案 0 :(得分:0)

您的计划没有问题。问题是如何在控制台上显示输出。

System.out.print(a[j] + " "); // display it 

System.out.println(a[j] + " "); // display it

显示数字。