【问题标题】:Bubble Sort using randomly generated array [duplicate]使用随机生成的数组进行冒泡排序[重复]
【发布时间】:2016-04-28 02:15:07
【问题描述】:

我必须编写一个冒泡排序程序,并将其编码,但由于某种原因,我的输出完全是疯狂的。这是一些输出......列表一直到 190 重复相同的事情; “[我@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++;
                }
       }
    }
}

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

【问题讨论】:

标签: java


【解决方案1】:

您打印 a,它是一个对象。它正在尝试打印该对象的内存地址。您想打印数组中的所有元素。我建议你为此编写一个辅助方法,因为你在多个地方都这样做:

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

【讨论】:

    猜你喜欢
    • 2020-05-17
    • 1970-01-01
    • 1970-01-01
    • 2017-05-29
    • 1970-01-01
    • 1970-01-01
    • 2020-08-12
    • 2011-12-06
    • 1970-01-01
    相关资源
    最近更新 更多