使用随机生成的数组

时间:2016-04-28 02:15:08

标签: java

我必须编写一个冒泡排序程序,我已将其编码,但出于某种原因,我的输出完全是疯了。这是一些输出......列表一直到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++;
                }
       }
    }
}

我需要它按升序对其进行排序,同时还要打印出每种迭代。

1 个答案:

答案 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);