Транспонировать одномерный массив, который не представляет собой квадрат, на место

Этот вопрос похож на этот, но вместо массива, представляющего собой квадрат, мне нужно транспонировать прямоугольный массив.

Итак, учитывая ширину: x и высоту: y, мой массив имеет элементы x*y.

Если ширина равна 4 и высота равна 3, и у меня есть:

{0,1,2,3,4,5,6,7,8,9,10,11}

который представляет матрицу:

0 1 2  3
4 5 6  7
8 9 10 11

Я хотел бы:

{0,4,8,1,5,9,2,6,10,3,7,11}

Я знаю, как это сделать, создав новый массив, но я хотел бы знать, как сделать это на месте, как в решении для ранее упомянутого вопроса.

7
задан Community 23 May 2017 в 12:03
поделиться