private static void ShiftLeft(Element[] array) { /* Измества масива m на k позиции наляво, на три стъпки */ Reverse(array, 0, K - 1); Reverse(array, K, N - 1); Reverse(array, 0, N - 1); }
private const int N = 10; /* Брой елементи в масива */ #endregion Fields #region Methods private static void InitializeArray(Element[] array) { for (int i = 0; i < array.Length; i++) { array[i].Data = i; } }
private static void Main() { Element[] elements = new Element[N]; InitializeArray(elements); ShiftLeft(elements); PrintArray(elements); }
static void PrintArray(Element[] array) { for (int i = 0; i < array.Length; i++) { Console.Write("{0} ", array[i].Data); } Console.WriteLine(); }
/* Обръща подмасива m[a..b] */ private static void Reverse(Element[] array, int a, int b) { int count = (b - a) / 2; int k = a; int j = b; for (int i = 0; i <= count; i++, j--, k++) { Element temp = array[k]; array[k] = array[j]; array[j] = temp; } }