我必须编写一个冒泡排序程序,我已将其编码,但出于某种原因,我的输出完全是疯了。这是一些输出......列表一直到190重复同样的事情; “[I @ 5b787144”
49, 21, 45, 22, 28, 55, 91, 34, 69, 27, 40, 60, 41, 14, 45, 79, 93, 11, 89, 77, 1)[I@5b787144
2)[I@5b787144
3)[I@5b787144
这是我的代码。
import java.util.Random;
public class Bubble
{
public void generate ()
{
int k;
int a[];
int count = 1;
a = new int[20];
for (int i = 0; i < 20; i++)
{
Random rand = new Random();
a[i] = rand.nextInt(100);
System.out.print(a[i] +", ");
}
for (int h = 0; h < a.length-1; h++)
{
for (int j = 1; j < a.length-h; j++)
{
if (a[j-1] > a[j])
{
k = a[j-1];
a[j-1] = a[j];
a[j] = k;
}
System.out.println(+count+ ")" +a);
count++;
}
}
}
}
我需要它按升序对其进行排序,同时还要打印出每种迭代。
答案 0 :(得分:0)
您打印一个对象。它试图打印该对象的内存地址。您想要打印数组中的所有元素。我建议你为此编写一个辅助方法,因为你做了多个地方:
private void printArr(int[] array) {
for (int i : array) {
System.out.print(i + "");
}
System.out.println();
}
然后而不是调用
System.out.println(+count+ ")" +a);
待办事项
System.out.print(count + "");
printArr(a);