Write a function rotate(arr[], d, n) that rotates arr[] of size n by d elements. In this article, we will explore the Reversal Algorithm for array rotation and implement it inPython.
Example
Input:arr[] = [1, 2, 3, 4, 5, 6, 7] d = 2Output: arr[] = [3, 4, 5, 6, 7, 1, 2]

Rotation of the above array by 2 will make an array

Python Program for Reversal Algorithm of Array Rotation
Python3# Function to reverse arr[]defrverseArray(arr,d):c=(arr[d:])+(arr[:d])returnc# Driver function to test above functionsarr=[1,2,3,4,5,6,7]d=2print(rverseArray(arr,d))
Output[3, 4, 5, 6, 7, 1, 2]
Python Program for Reversal algorithm for Array Rotation
Python3# Python program for reversal algorithm of array rotation# Function to reverse arr[] from index start to enddefrverseArray(arr,start,end):while(start<end):temp=arr[start]arr[start]=arr[end]arr[end]=tempstart+=1end=end-1# Function to left rotate arr[] of size n by ddefleftRotate(arr,d):n=len(arr)rverseArray(arr,0,d-1)rverseArray(arr,d,n-1)rverseArray(arr,0,n-1)# Function to print an arraydefprintArray(arr):foriinrange(0,len(arr)):print(arr[i])# Driver function to test above functionsarr=[1,2,3,4,5,6,7]leftRotate(arr,2)# Rotate array by 2printArray(arr)
Python Program for Reversal Algorithm Using collections.deque
Python3fromcollectionsimportdequedefrotate_array_deque(arr,d):n=len(arr)rotated_array=deque(arr)rotated_array.rotate(-d)returnlist(rotated_array)# Examplearr=[1,2,3,4,5,6,7]d=2rotated_array=rotate_array_deque(arr,d)print("Rotated array:",rotated_array)
OutputRotated array: [3, 4, 5, 6, 7, 1, 2]
Time complexity: O(n + k).
Auxiliary space: O(n)