java 二維數組行列互換
阿新 • • 發佈:2018-03-28
高效率 java 二維數組 [] 分析 gpo png 留言 ima 過程
代碼需求:
對等行等列的二維數組進行 行列 的互換
分析過程
- 主對角線是保持不變
- 行列互換即角標互換:[0][1] => [1][0]
- 循環次數:外層循環行,內層循環每一行的列
示意圖
代碼實現
public class ArrayReverse { public static void main(String[] args) { int arry[][] = new int[][] {{1,2,3},{4,5,6},{7,8,9}}; reverse(arry); printArray(arry); } /** * 二維數組轉置 * @param arry */ public static void reverse(int arry[][]) { int count = 0;//用於統計總共循環次數 for(int i=0; i< arry.length-1; i++) { //列循環從:i+1開始,提高循環效率 for(int j=i+1; j< arry[i].length; j++) { int temp = arry[i][j]; arry[i][j] = arry[j][i]; arry[j][i] = temp; count++; } } System.out.println(count); } public static void printArray(int array[][]){ for(int i=0;i<array.length; i++) { for(int j = 0; j< array[i].length; j++) { System.out.print(array[i][j]+"、"); } System.out.println(); } } }
總結
內層循環(列循環)循環的起始點 = 外層循環+1;比從j=0循環節省了循環次數,提高效率。
如有更好的算法,還望道友下發留言幫忙改進!
java 二維數組行列互換