2014-11-24 41 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