转的领先N维一维数组 [英] transpose 1D array of leading dimension N

查看:125
本文介绍了转的领先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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆