Left rotate an array by D places in C++
Hello, friends in this tutorial we will learn to left rotate an array by D places and write the code for it in C++.
An array is a collection of elements of similar data types stored in contiguous memory locations. It is used to store a collection of data. We can access the elements of an array by the index at which the element is stored.
Given an integer array of N elements, we have to rotate the array by D places.
For example, consider the following array of 9 elements from 1 to 9 and D=6

Hence after rotating the array by 6 places we get the following resultant array.

The approach is simple, consider Input array arr[] = [1, 2, 3, 4, 5, 6, 7, 8, 9], d = 6, n = 9
- Store the first d elements in a temporary array temp[] = [1, 2, 3, 4, 5, 6]
- Shift the remaining elements of the array toward the start of the array.
- Store back the d elements to the array arr[] = [7, 8, 9, 1, 2, 3, 4, 5, 6]
C++ program to rotate the array by D places
Following is the code to left rotate the array by D places
#include<iostream>
using namespace std;
/* function which left rotate the array by D places */
void leftRotateByD(int *arr,int n,int d)
{
/* storing 1st D elements in temporary array */
int temp[d];
for (int i=0;i<d;i++)
{
temp[i]=arr[i];
}
/* shifting remaining elements of the array */
int x=0;
for(int j=d;j<n;j++)
{
arr[x]=arr[j];
x++;
}
/* storing back the D elements to the orignal array */
x=0;
for (int k=n-d;k<n;k++)
{
arr[k]=temp[x];
x++;
}
}
int main()
{
int n,d;
cout<<"Enter the size of array\n";
cin>>n;
int arr[n];
cout<<"Enter the elements of array\n";
for (int i=0;i<n;i++)
{
cin>>arr[i];
}
cout<<"Enter the value of D\n";
cin>>d;
/* function call to rotate the array */
leftRotateByD(arr,n,d);
cout<<"Array after left rotation by D places\n";
for (int i=0;i<n;i++)
{
cout<<arr[i]<<" ";
}
return 0;
}OUTPUT:
Following is the output of the above program.
Enter the size of array 9 Enter the elements of array 1 2 3 4 5 6 7 8 9 Enter the value of D 6 Array after left rotation by D places 7 8 9 1 2 3 4 5 6
The time complexity of the program is O(N).
Leave a Reply