2016-04-28 8 views
0

私はバブルソートプログラムを書く必要があり、私はそれをコード化しているが、何らかの理由で私の出力は全く狂気です。これはいくつかの出力です...リストは同じことを繰り返して190に至りました。 "[I @ 5b787144"バブルソートランダムに生成された配列を使用して

49, 21, 45, 22, 28, 55, 91, 34, 69, 27, 40, 60, 41, 14, 45, 79, 93, 11, 89, 77, 1)[[email protected] 
2)[[email protected] 
3)[[email protected] 

ここは私のコードです。

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

チェックアウト[Arrays.toString() ](https://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html#toString(int [])) – BevynQ

答えて

0

オブジェクトを印刷します。そのオブジェクトのメモリアドレスを印刷しようとしています。配列のすべての要素を出力したいとします。私はあなたがそれを複数の場所ではないので、あなたが、そのためのヘルパーメソッドを書く勧めます。Do

System.out.println(+count+ ")" +a); 

を呼び出すのではなく、その後

private void printArr(int[] array) { 
for (int i : array) { 
    System.out.print(i + ""); 
} 
System.out.println(); 
} 

System.out.print(count + ""); 
printArr(a); 
関連する問題