Повернутися

// Implementation 1: Simple swap of two elements at indices k1 and k2
void SwapArr(int* arr, int n, int k1, int k2) {
     if (k1 >= 0 && k1 < n && k2 >= 0 && k2 < n) {
         int temp = arr[k1];
         arr[k1] = arr[k2];
         arr[k2] = temp;
     }
}

// Implementation 2: Reverse elements between indices k1 and k2 (inclusive)
void SwapArr(int* arr, int n, int k1, int k2) {
     // Перевірка коректності індексів
     if (k1 < 0 || k2 >= n || k1 > k2) return;
     
     // Реверсування підмасиву від k1 до k2
     while (k1 < k2) {
         // Обмін елементів місцями
         int temp = arr[k1];
         arr[k1] = arr[k2];
         arr[k2] = temp;
         
         // Зсув індексів до центру
         k1++;
         k2--;
     }
}