- Input: Write a function
rotate(ar[], d, n)
that rotatesarr[]
of sizen
byd
elements- Output:
1 2 3 4 5 6 7
- Input: Rotation of the above array by
2
will make array- Output:
3 4 5 6 7 1 2
Input arr[] = [1, 2, 3, 4, 5, 6, 7], d = 2, n =7
-
- Store
d
elements in a temp array temp[] = [1, 2]
- Store
-
- Shift rest of the
arr[]
arr[] = [3, 4, 5, 6, 7, 6, 7]
- Shift rest of the
-
- Store back the
d
elements arr[] = [3, 4, 5, 6, 7, 1, 2]
- Store back the
Algorithm Complexity
Complexity | Notation |
---|---|
Time Complexity |
O(n) |
Auxiliary Space |
O(d) |
leftRotate(arr[], d, n)
start
For i = 0 to i < d
Left rotate all elements of arr[] by one
end
To rotate by one, store arr[0] in a temporary variable temp, move arr[1] to arr[0], arr[2] to arr[1] …and finally temp to arr[n-1]
Let us take the same example arr[] = [1, 2, 3, 4, 5, 6, 7], d = 2
Rotate arr[] by one 2 times
We get [2, 3, 4, 5, 6, 7, 1]
after first rotation and [3, 4, 5, 6, 7, 1, 2]
after second rotation.
Algorithm Complexity
Complexity | Notation |
---|---|
Time Complexity |
O(n*d) |
Auxiliary Space |
O(1) |