#include <iostream>
void print(int arr[], int n) {
for(int i=0; i < n; i++){
printf("%d ", arr[i]);
}
printf("\n");
}
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 shift_left(int arr[], int n, int shift) {
int step = shift %n;
if(step <=0) {
return ;
}
reverse(arr,0, step -1);
reverse(arr, step, n-1);
reverse(arr, 0, n-1);
}
int main(int argc, char** argv) {
int n = 9;
int num[9] = {1,2,3,4,5,6,7,8,9};
print(num, n);
shift_left(num,n,3);
print(num, n);
return 0;
}
T(n)=O(n),S(n)=O(1)