2014-11-24 84 views
0

我即將排序一個2d數組。但是,這樣做有一定的方法。 (運行它的時間,在繼續下一行之前)排序數組並打印出

正如你所看到的,我在這裏所做的是,我第一次排序第0行,此後我正在遞增在增加行之前,我讓它對列math.pow(m[j].length, 2)進行排序。它是否正確?

此外,是否有一種智能的方式從void方法打印出二維數組,而無需使用for循環。 Arrays.tostring對我沒有多大幫助?

public static void sort(int m[][]) { 


    int j = 0; 

    for (int k = 0; k < Math.pow(m[j].length, 2); k++) 
    { 
     for (int i = 0; i < m[k].length - 1; i++) 
     { 

     if (m[i][j] > m[i + 1][j]) 
     { 
      int temp = m[i][j]; 
      m[i][j] = m[i + 1][j]; 
      m[i + 1][j] = m[i][j]; 
     } 
     } 
    } 
    System.out.print("The array is " + Arrays.toString(m)); 
    } 
+1

「有沒有打印出從一個void方法的二維數組,而無需使用一個for循環的一個聰明的辦法。」 - 是:'Arrays.deepToString(m)' – drewmoore 2014-11-24 02:37:35

+0

謝謝,這對我很有用! 這個說法是什麼意思?爲什麼toString會顯示矩陣? – Avacay 2014-11-24 02:38:46

回答

0

此外,有沒有打印出從空隙方法的2D陣列,而無需使用一個for循環的一個巧妙的方法。 Arrays.tostring對我沒有多大幫助?

是的。 Arrays.deepToString(Object[])一樣,

System.out.print("The array is " + Arrays.deepToString(m)); 

最後,您的交換是很顯然是不正確

int temp = m[i][j]; 
m[i][j] = m[i + 1][j]; 
m[i + 1][j] = temp; // m[i][j]; 
+0

我只是想當我打印出我的結果。 我想讓我的臨時數組,而不是我的偵察? – Avacay 2014-11-24 02:43:04

+0

@Avacay號您的代碼(發佈後)在設置後不會使用'temp'。 – 2014-11-24 02:45:07

+0

數組到int沒有意義不! 我想創建一個新的數組並將其寫入該數組? – Avacay 2014-11-24 02:46:22