Задача: Циклический сдвиг массива или строки - 3 уникальных алгоритма
Исходник: Функцией переворота, язык: C# [code #71, hits: 14952]
автор: this [добавлен: 24.02.2006]
  1. public void CycleShiftByReverse(ref String strarr, int rotdist)
  2. {
  3. this.StrReverse(ref strarr, 0, rotdist - 1);
  4. this.StrReverse(ref strarr, rotdist, strarr.Length - 1);
  5. this.StrReverse(ref strarr, 0, strarr.Length - 1);
  6. }
Циклический сдвиг массива символов strarr на rotdist позиций функцией переворота символов.

Использует всего несколько дополнительных переменных.
По производительности уступает перестановке блоками, но быстрее последовательных обменов

this.StrReverse() - метод переворота символов строки
Тестировалось на: MS Visual Studio 2005, .NET Framework 2.0

+добавить реализацию