# Python Program for Reversal algorithm for array rotation

Write a function rotate(arr[], d, n) that rotates arr[] of size n by d elements.

Example :

```Input :  arr[] = [1, 2, 3, 4, 5, 6, 7]
d = 2
Output : arr[] = [3, 4, 5, 6, 7, 1, 2]
```

Rotation of the above array by 2 will make array

 `# Python program for reversal algorithm of array rotation `` ``# Function to reverse arr[] from index start to end ``def` `rverseArray(arr, start, end): ``    ``while` `(start < end): ``        ``temp ``=` `arr[start] ``        ``arr[start] ``=` `arr[end] ``        ``arr[end] ``=` `temp ``        ``start ``+``=` `1``        ``end ``=` `end``-``1`` ``# Function to left rotate arr[] of size n by d ``def` `leftRotate(arr, d): ``    ``n ``=` `len``(arr) ``    ``rverseArray(arr, ``0``, d``-``1``) ``    ``rverseArray(arr, d, n``-``1``) ``    ``rverseArray(arr, ``0``, n``-``1``) `` ``# Function to print an array ``def` `printArray(arr): ``    ``for` `i ``in` `range``(``0``, ``len``(arr)): ``        ``print` `arr[i], `` ``# Driver function to test above functions ``arr ``=` `[``1``, ``2``, ``3``, ``4``, ``5``, ``6``, ``7``] ``leftRotate(arr, ``2``) ``# Rotate array by 2 ``printArray(arr) `` ``# `

Output :

`3 4 5 6 7 1 2`

Time Complexity : O(n)