Hello Everyone,
I hope you have gone through the “Program for array rotation” before coming here. It’s really advisable to completely read Program for array rotation, then only continue with “Program to cyclically rotate an array by one”.
Link: Program for array rotation
The array is cyclically rotated clockwise by one. This means that each of the array elements are displayed to the right by one and the last element ends up as the first element. An example of this is given as follows.
Examples:
Input: arr[] = {1, 2, 3, 4, 5}
Output: arr[] = {5, 1, 2, 3, 4}
Following are steps.
- Store last element in a variable say x.
- Shift all elements one position ahead.
- Replace first element of array with x.
- C++
// C++ code for program
// to cyclically rotate
// an array by one
# include <iostream>
using
namespace
std;
void
rotate(
int
arr[],
int
n)
{
int
x = arr[n - 1], i;
for
(i = n - 1; i > 0; i--)
arr[i] = arr[i - 1];
arr[0] = x;
}
// Driver code
int
main()
{
int
arr[] = {1, 2, 3, 4, 5}, i;
int
n =
sizeof
(arr) /
sizeof
(arr[0]);
cout <<
"Given array is \n"
;
for
(i = 0; i < n; i++)
cout << arr[i];
rotate(arr, n);
cout <<
"\nRotated array is\n"
;
for
(i = 0; i < n; i++)
cout << arr[i];
return
0;
}
// This code is contributed by Brahmajit
Output:
Given array is 1 2 3 4 5 Rotated array is 5 1 2 3 4
Time Complexity: O(n) As we need to iterate through all the elements
Auxiliary Space: O(1)