Это алгоритм для этого вопроса: повернуть массив из n элементов, оставленных позициями i.Например, при n = 8 и i = 3 массив abcdefg поворачивается в defghabc.
/* Alg 1: Rotate by reversal */
void reverse(int i, int j)
{ int t;
while (i < j) {
t = x[i]; x[i] = x[j]; x[j] = t;
i++;
j--;
}
}
void revrot(int rotdist, int n)
{ reverse(0, rotdist-1);
reverse(rotdist, n-1);
reverse(0, n-1);
}
Какова временная сложность этого метода?И есть ли лучшее решение этой проблемы?Спасибо, действительно.