Поворот двумерного прямоугольного массива на месте

У меня есть неквадратный массив вроде этого:

const int dim1 = 3, dim2 = 4;
int array[12] = { 1, 2, 3, 
                  4, 5, 6,
                  7, 8, 9,
                 10,11,12};

, и мне нужно преобразовать его в:

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

, то есть повернуть / перетасовать его против часовой стрелки (или по часовой стрелке, алгоритм должно быть похоже).

Алгоритм должен занимать минимальное пространство. Мне нужно повернуть изображение в среде с крайне ограниченным объемом памяти, поэтому чем меньше места, тем лучше. Скорость - не такая большая проблема.

5
задан GhassanPL 23 September 2010 в 09:56
поделиться