原地矩阵转置算法实现

对于一个M*N的矩阵,现将其存储在一个一维数组中,数组长度 M*N,现要实现将该矩阵转置;

要求:

1、空间复杂度要求O(1);

算法实现:

#include 

using namespace std;

#define M 2
#define N 3
int arr[M*N] = {1,2,3,4,5,6};

void swap(int &a,int &b)
{
    a=a^b;
    b=a^b;
    a=a^b;
}
void travase(int a[] , int x )   //数组起始地址,数组长度,数组 循环右移多少位
{
    int i=0;
    int j=x-1;
    while(i

转置的思想来源: http://www.qiyeku.com/xinwen/1182832.html


你可能感兴趣的:(程序员面试题)