Transpose.java


Below is the syntax highlighted version of Transpose.java from §1.4 Arrays.


/******************************************************************************
 * Compilation: javac Transpose.java
 * Execution: java Transpose n
 *
 * Transpose an n-by-n matrix in-place, without creating a second
 * 2D array.
 *
 * Submitted by Christian Rubio.
 *
 ******************************************************************************/
publicclassTranspose{
publicstaticvoidmain(String[] args){
// create n-by-n matrix
int n = Integer.parseInt(args[0]);
int[][] a =newint[n][n];
for(int i =0; i < n; i++){
for(int j =0; j < n; j++){
 a[i][j]= n*i + j;
}
}
// print out initial matrix
 System.out.println("Before");
 System.out.println("------");
for(int i =0; i < n; i++){
for(int j =0; j < n; j++){
 System.out.printf("%4d", a[i][j]);
}
 System.out.println();
}
// transpose in-place
for(int i =0; i < n; i++){
for(int j = i+1; j < n; j++){
int temp = a[i][j];
 a[i][j]= a[j][i];
 a[j][i]= temp;
}
}
// print out transposed matrix
 System.out.println();
 System.out.println("After");
 System.out.println("------");
for(int i =0; i < n; i++){
for(int j =0; j < n; j++){
 System.out.printf("%4d", a[i][j]);
}
 System.out.println();
}
}
}

AltStyle によって変換されたページ (->オリジナル) /


Copyright © 2000–2022, Robert Sedgewick and Kevin Wayne.
Last updated: Thu Aug 11 10:13:44 EDT 2022.