Задача: Переворот символов строки (или элементов одномерного массива)
Исходник: Симметричное (зеркальное) отображение массива символов, язык: C# [code #198, hits: 10932]
автор: - [добавлен: 07.07.2007]
  1. static void Reverse(ref char[] array)
  2. {
  3. char t;
  4.  
  5. for (int i = 0; i <= Math.Floor((double)((array.Length - 1) / 2)); i++)
  6. {
  7. t = array[i];
  8. array[i] = array[array.Length - (1 + i)];
  9. array[array.Length - (1 + i)] = t;
  10. }
  11. }
Данный код использует традиционный способ замены символов строки, меняя первый и последний, второй и предпоследний символы в массиве из Char. Но стоит заметить что реализация для типа string будет отличатся т.к нулевым байтом типа string представлена длина строки. Для того чтобы заставить такой код работать с типом string придётся изменить просмотр переменной i с нуля на единицу. Данный код отличается от вышепредставленного тем, что не использует дополнительную переменную j. На достаточно современном AMD Athlon 64 3200+ данная операция производится менее чем за 1мс.
Тестировалось на: MS Visual Studio 2005, .NET Framework 2.0

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