#include <stdio.h>
void
printArray(
int
arr[],
int
size);
void
reverseArray(
int
arr[],
int
start,
int
end);
void
leftRotate(
int
arr[],
int
d,
int
n)
{
if
(d == 0)
return
;
d = d % n;
reverseArray(arr, 0, d - 1);
reverseArray(arr, d, n - 1);
reverseArray(arr, 0, n - 1);
}
void
printArray(
int
arr[],
int
size)
{
int
i;
for
(i = 0; i < size; i++)
printf
(
"%d "
, arr[i]);
}
void
reverseArray(
int
arr[],
int
start,
int
end)
{
int
temp;
while
(start < end) {
temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
start++;
end--;
}
}
int
main()
{
int
arr[] = { 1, 2, 3, 4, 5, 6, 7 };
int
n =
sizeof
(arr) /
sizeof
(arr[0]);
int
d = 2;
leftRotate(arr, d, n);
printArray(arr, n);
return
0;
}