Reversal algorithm for array rotation in C++

In this tutorial, we are going to learn about Reversal algorithm for array rotation in C++. In this problem, we have to rotate the array from a particular point let’s say it (k) in the clockwise direction.

Let us understand the problem by taking an example:
Let the given array be:
1->2->3->4->5

And the point from which we have to rotate the array be k which is equal to 2.

After the first rotation array will be like:

2->3->4->5->1

and after second rotation array will be like:

3->4->5->1->2

which is our required answer.

The idea to solve this problem is very simple. First, iterate the array from given index=k to end of the array and print it. Then iterate the array from index=0 to the given index k and print it. We will get the required answer. Let us try to implement the above idea in our code.

Program for Reversal algorithm for array rotation

Cpp source code:

// Reversal algorithm for array rotation in C++
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cout<<"Enter length of array: ";
    cin>>n;
    int a[n];
    cout<<"\nEnter array elements:\n";
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
    }
    int k;
    cout<<"\nEnter the index from which you want to rotate array: ";
    cin>>k;
    cout<<"\nArray after rotation:\n";
    for(int i=k;i<n;i++)
    {
        cout<<a[i]<<" ";
    }
    for(int i=0;i<k;i++)
    {
        cout<<a[i]<<" ";
    }
    cout<<"\n";
    return 0;
}

Input/Output:

Enter length of array: 5

Enter array elements:
1 2 3 4 5

Enter the index from which you want to rotate array: 2

Array after rotation:
3 4 5 1 2

The time complexity of the above solution is O(n).

You may also learn:

Program to calculate percentile of an array in C++

How to Reverse the Elements of an Array in C++

Do not forget to comment if you find anything wrong in the post or you want to share some information regarding the same.

Leave a Reply

Your email address will not be published. Required fields are marked *