Array Rotation in JavaIn this section, we will learn what is rotation of an array and how to rotate an array in through a Java program. Java Array RotationThe rotation of an array simply means to shift the array elements of an array to the specified positions. We can rotate an array in both directions i.e. clockwise and anticlockwise. We can perform any number of rotations on an array. Types of Rotation
Left RotationIn left rotation, the array elements rotated to the left with the specified number of positions. It rotates the array in the clockwise direction. The lowest index element moves to the highest index in rotation. Example Suppose, [1, 2, 3, 4, 5] is an array and we need to perform 2 left rotations on an array then the array become: Given array = [1, 2, 3, 4, 5] Array after first left rotation = [2, 3, 4, 5, 1] Array after second left rotation = [3, 4, 5, 1, 2] ArrayLeftRotation.java Output: Right RotationIn the right rotation, the array elements rotated to the right with the specified number of positions. It rotates the array in an anticlockwise direction. Example: Suppose [4, 7, 9, 0, 1] is an array and we need to perform 2 left rotations on an array then the array become: Given array = [4, 7, 9, 0, 1] Array after first left rotation = [1, 4, 7, 9, 0] Array after second left rotation = [0, 1, 4, 7, 9] ArrayRightRotation.java Output: How to rotate an array?There are the following four ways to rotate an array:
Using Temp ArrayInput array[] = [11, 22, 33, 44, 55], Number of rotations (r) = 2, Number of elements (n) = 5 1. Store the first r elements in a temp array. 2. Move rest array to the left. 3. After that, append the element of the temparray[] to the array[]. Rotate Element One by OneBy Using Juggling AlgorithmJuggling algorithm is the advanced version of the second (rotate element one by one) approach. The algorithm divides the whole array into different sets. We can find the number of sets by finding the GCD of r and n. After getting the sets, move the elements within the sets. Let's understand the algorithm through an example. Suppose, a[] is an array having 12 (n) elements (1, 2, 3,……, 12) and we need to perform 3 (d) rotations, then according to the algorithm: GCD of n and d = 3 Elements are first moved in the first set. After the movement, we get the following array: {4, 2, 3, 7, 5, 6, 10, 8, 9, 1, 11, 12} Movement of elements in second set. {4, 5, 3, 7, 8, 6, 10, 11, 9, 1, 2, 12} At last, movement of elements in third set. {4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3} Let's implement the above approach in a Java program. JugglingAlgo.java Output: By Reversing an ArrayThe idea is to reverse the last k elements of the input array and then reverse the remaining nk elements. Using the mechanism, we get the right rotated array by reversing the complete array. RotateReverse.java Output:
Next TopicEquilibrium Index of an Array in Java
