2014-09-23 85 views
0

這裏是我的代碼:我無法看到正在返回的數組的正確內容。爲什麼?

import java.util.*; 
import java.lang.*; 
import java.io.*; 


class BubbleSort { 

    public static int[] bubbleSort(int[]arrayInput) { 

     boolean swapped = true; 
     int tmp = 0; 

     while(swapped) { 

      swapped = false;//We don't know if the array is pre-sorted 

      for(int i = 0; i<(arrayInput.length)-1; i++) { 

       if(arrayInput[i] > arrayInput[i+1]) { 

        tmp = arrayInput[i]; 
        arrayInput[i] = arrayInput[i+1]; 
        arrayInput[i+1] = tmp; 

        swapped = true;//Unsorted array - check again 
       } 
      } 
     } 

     return arrayInput; 
    } 

    public static void main (String[] args) throws java.lang.Exception { 

     int[]unsorted = {13, 2, 11, 6, 5, 15}; 
     int[]finalArray = bubbleSort(unsorted); 
     System.out.println(finalArray); 
    } 
} 

我,爲什麼我收到了一堆廢話完全不確定返回給我。代碼編譯沒有問題。我對它的正確性非常肯定。任何人都可以幫助我生成一個整數數組,而不是垃圾。謝謝

+0

你看到了什麼輸出與你的期望? – StormeHawke 2014-09-23 20:07:57

回答

1

爲了打印數組中包含的值,使用Arrays#toString。 變化

System.out.println(finalArray); 

System.out.println(Arrays.toString(finalArray)); 
0

這是因爲你需要輸出由其中一人一個。像這樣的東西

for(int i = 0; i < arrayInput.length; i++) {   
    System.out.println(arrayInput[i]); 
} 

現在你正在打印數組作爲對象。

陣列擴展對象,它具有toString()方法,即所謂的在您的情況

根據javadoc的

的getClass()。的getName()+ '@' + Integer.toHexString( hashCode())