欢迎来到我的问题。
我正在做家庭作业,在尝试创建大小为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来显示数字。任何更多,它只是说终止。我该如何解决?
答案 0 :(得分:0)
您的计划没有问题。问题是如何在控制台上显示输出。
System.out.print(a[j] + " "); // display it
到
System.out.println(a[j] + " "); // display it
显示数字。