An array is a type of linear data structure containing a collection of elements of similar data type. Arrays are one of the most important data structures. The elements in the array are stored in contiguous memory locations.
Array rotation is nothing but shifting elements of the array in a specified direction with a rotation factor. No worries, this will be made clear with an example below,
There are many ways to rotate an array, you may use a temporary array to store values and then replace them in the actual array, or you may store the first element of the array in a temporary variable. Shift the other elements to the left, and we have to do this for
d times (where
d is the rotation factor). We are going to use Reversal algorithm for rotating the array in left direction.
Unlike other methods mentioned above, Reversal algorithm don't use any temporary variable or array for the rotation process. This makes it more space efficient. This algorithm works on 3 steps. They are,
- And finally, reverse
First, we need a function to rotate the array from a given index to the end. So it takes 3 parameters like
end. We use a
while loop and assign the starting value of
samparr to a temporary variable called
We then assign the starting value of
samparr to the ending value of
samparr. And, finally, we assign the ending value of
samparr to the
temp again. We use this
temp variable to dynamically change the starting and ending values of the
samparr. We then increment the start with 1 and decrement the end with 1. This is going to be our main function, which we would call with respect to the above-mentioned 3 steps.
We, then, need a function to actually rotate the array to the left using the rotation factor
d. For that, we create another function which takes the
n as parameters and return the rotated array. We return the function if we have d=0, which means the array is empty. Going good till now, but wait!, What if the
d is greater than
n, step 2 will become broken, to fix that, we just update
d % n. We'll look at an example in a minimum scale to better understand this
d % n
After, refactoring, we give Step1, Step2 and Step3 to the
Reversefunction. This will finally return a nicely rotated array as a result.
So, Finally, we have to console log the rotated array. For that, we create a function called
Logger, which will console log the rotated array. This function takes two parameters,
n. It is a simple function which loops through all elements in the array and log them onto console.
It's done. The last and final thing we do is pass inputs to our functions, to see them in action.
Use this *JSFiddle to change rotation factor and input array.
Thanks for reading, give a 💖 if you like.