The elements are taken as the input. The array is rotated left. That means, the element of index 1 is stored in index 0, the element of index 2 is stored in index 1 and so on. And the element of index 0 is stored in index n-1..
Let the array be:
14 | 52 | 41 | 63 | 74 |
0 1 2 3 4
First the element of index 0 (here, 14) will be stored in a temporary variable.
14 | 52 | 41 | 63 | 74 |
0 1 2 3 4
Now the second element will be copied to the first index making the array as:
52 | 52 | 41 | 63 | 74 |
0 1 2 3 4
By the same process, the third element will be copied to the 2nd position and so on till the last element of the array will be stored at the 2nd last position of the array.
The array will be:
52 | 41 | 63 | 74 | 74 |
0 1 2 3 4
At last the value of the temporary element will be stored at the last index so the array will be:
52 | 41 | 63 | 74 | 14 |
0 1 2 3 4
INPUT: Array elements
OUTPUT: the array after left rotation
PROCESS:
Step 1: [taking the input]
Read n [number of elements]
For i=0 to n-1 repeat
Read a[i]
[end of ‘for’ loop]
Step 2: [Rotating the array]
Set t<-a[0]
For i=1 to n-1 repeat
Set a[i-1]<-a[i]
[End of ‘for’ loop]
Set a[n-1]<-t
Print “The array after rotation is: “
For i=0 to n-1 repeat
Print a[i]
[End of ‘for’ loop]
Step 3: Stop.
The time complexity to take the number of elements is O(n) and the time complexity to left rotate is also O(n).
Therefore, the time complexity of this program is O(n).
t=a[0];--------------------------------------------------------O(1)
for(i=1;i<n;i++)---------------------------------------------O(n-1)
a[i-1]=a[i];----------------------------------------O(1)
a[n-1]=t;-----------------------------------------------------O(1)
therefore, the complexity is: O(n)