矩阵逆时针旋转90度,空间复杂度O(1)

将一个矩阵逆时针旋转90度,首先可以沿左上角-右下角斜对角线,进行上下交换数据,然后上下数据交换即可。

 1 #include <stdio.h>

 2 #include <stdlib.h>

 3 //矩阵逆时针旋转90度

 4 int main()

 5 {

 6     int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};

 7     int b[3][3];

 8     int i;

 9     int j;

10     int temp;

11     printf("原始矩阵\n");

12     for(i=0;i<3;i++){

13       for(j=0;j<3;j++){

14           printf("%d ",a[i][j]);

15       }

16         printf("\n");

17      }

18 

19     printf("第一次转换\n");

20 

21     for(i=0;i<3;i++){

22         for(j=i;j<3;j++){

23            temp=a[i][j];

24            a[i][j]=a[j][i];

25            a[j][i]=temp;

26         }

27     }

28      for(i=0;i<3;i++){

29         for(j=0;j<3;j++){

30          printf("%d ",a[i][j]);

31         }

32         printf("\n");

33      }

34      printf("第二次转换\n");

35      for(i=0;i<3/2;i++){

36         for(j=0;j<3;j++){

37           temp=a[i][j];

38           a[i][j]=a[3-i-1][j];

39           a[3-i-1][j]=temp;

40         }

41      }

42 

43       for(i=0;i<3;i++){

44         for(j=0;j<3;j++){

45          printf("%d ",a[i][j]);

46         }

47         printf("\n");

48      }

49 

50     return 0;

51 }

 

你可能感兴趣的:(空间复杂度)