1. 程式人生 > >矩陣相關_學習記錄

矩陣相關_學習記錄

package p41;

/**
 * 矩陣
 * @author Guozhu Zhu
 * @date 2018/10/11
 * @version 1.0
 *
 */
public class Test05 {
	
	/* ========== Test ========== */
	public static void main(String[] args) {
		int arr1[][]={ {1,2,3,4},{5,6,7,8},{9,10,11,12}};
		int[][] arr = Rotation(arr1);
		//Rotation2(arr1);
		for (int i = 0; i < arr.length; i++) {
			for (int j = 0; j < arr[0].length; j++) {
			    System.out.print(arr[i][j] + ",");
			}
			System.out.println("");
		}

	}
    
	public static int[][] Rotation(int arr[][])
	{
		int tmp[][] = new int[arr[0].length][arr.length];
		//int dst = arr.length-1;	  //這裡我們從目標矩陣的最後一列開始存放資料
		//順時針旋轉矩陣90度
		/*for(int i=0;i< arr.length;i++, dst--)
			for(int j=0;j< arr[0].length;j++)
				tmp[j][dst]=arr[i][j];
        return tmp;*/
		int dst = 0;
		for (int i = 0; i < arr.length; i++, dst++) {
			for (int j = 0; j < arr[0].length; j++) {
				tmp[arr[0].length-1-j][dst] = arr[i][j];
			}
		}
		return tmp;
	}
	
	public static void Rotation1(int[][] arr) {
		for (int i = 0; i < (arr.length/2); i++) {
			for (int j = 0; j < arr[0].length; j++) {
				int temp = arr[arr.length-1-i][j];
				arr[arr.length-1-i][j] = arr[i][j];
						arr[i][j] = temp;
			}
		}
	}
	
	public static void Rotation2(int[][] arr) {
		for (int i = 0; i < (arr.length); i++) {
			for (int j = 0; j < arr[0].length/2; j++) {
				int temp = arr[i][j];
				arr[i][j] = arr[i][arr[0].length-1-j];
			    arr[i][arr[0].length-1-j] = temp;
			}
		}
	}
 
}