实现方法:
print_rotate_matrix(intmatrix,int n),该方法用于将一个nn的二维数组逆时针旋转45度后打印。下图显示一个33的二维数组及其旋转后屏幕的效果。
分析:
从右上角对数组中的元素进行输出。
实现代码:
package lock;
public class T10 {
private static void rotateArr(int[][] arr)
{
int row,col;
int len=arr.length; //打印二维数组右上部分
for(int i=len-1;i>0;i--)
{
row=0;
col=i;
while(col<len)
{
System.out.print(arr[row++][col++]+"");
}
System.out.println();
}//打印二维数组左下部分
for(int i=0;i<len;i++)
{
row=i;
col=0;
while(row<len)
{
System.out.print(arr[row++][col++]+"");
}
System.out.println();
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int[][] arr= {{1,2,3},{4,5,6},{7,8,9}};
rotateArr(arr);
}
}
运行结果:
算法性能分析:
这种方法对数组中的每个元素都遍历了一次,因此,算法的时间复杂度为O(N^2)。