Несколько способов поворота двумерного массива на 90 градусов:
for i <- 0 to (n / 2) - 1: for j <- i to n - i - 1: temp <- M[i, j] M[i, j] <- M[n - j - 1, i] M[n - j - 1, i] <- M[n - i - 1, n - j - 1] M[n - i - 1, n - j - 1] <- M[j, n - i - 1] M[j, n - i - 1] <- tempreturn M
Эти алгоритмы работают только для квадратных матриц. 1 Для прямоугольных матриц нужны отдельные алгоритмы. 1
Также для квадратной матрицы поворот по часовой стрелке можно разбить на два действия: обменять местами строки (первая с последней, вторая с предпоследней и т. д.) и транспонировать. 2