转的领先N维一维数组 [英] transpose 1D array of leading dimension N
本文介绍了转的领先N维一维数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我怎样才能转的龙头N维的一维数组,没有多余的空间?任何语言是好的
how can i transpose an 1d array of leading dimension N, without extra space ? any language is fine
推荐答案
我的一维解决方案,就地矩阵转置
mn = M*N; /* M rows and N columns */
q = mn - 1;
i = 0; /* Index of 1D array that represents the matrix */
do {
k = (i*M) % q;
while (k>i) k = (M*k) % q;
if (k!=i) Swap(k, i);
} while ( ++i <= (mn -2) );
/* Update row and column */
matrix.M = N;
matrix.N = M;
这篇关于转的领先N维一维数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文