Untitled

 avatar
unknown
c_cpp
2 years ago
833 B
4
Indexable
#include <stdio.h>

void reverse(int arr[], int start, int end) {
    while (start < end) {
        int temp = arr[start];
        arr[start] = arr[end];
        arr[end] = temp;
        start++;
        end--;
    }
}

void rotate_array(int arr[], int size, int k) {
    k = k % size;  // Adjust k if it's larger than the array size
    
    // Reverse the entire array
    reverse(arr, 0, size-1);
    
    // Reverse the first k elements
    reverse(arr, 0, k-1);
    
    // Reverse the remaining elements
    reverse(arr, k, size-1);
}

int main() {
    int array[] = {1, 2, 3, 4, 5};
    int size = sizeof(array) / sizeof(array[0]);
    int k = 2;
    
    rotate_array(array, size, k);
    
    for (int i = 0; i < size; i++) {
        printf("%d ", array[i]);
    }
    
    return 0;
}
Editor is loading...