Java Program to Rotate all odd numbers right and all even numbers left in an Array of 1 to N

Given a permutation arrays A[] consisting of N numbers in range [1, N], the task is to left rotate all the even numbers and right rotate all the odd numbers of the permutation and print the updated permutation.Â
Note: N is always even.
Examples:Â
Input: A = {1, 2, 3, 4, 5, 6, 7, 8}Â
Output: {7, 4, 1, 6, 3, 8, 5, 2}Â
Explanation:Â
Even element = {2, 4, 6, 8}Â
Odd element = {1, 3, 5, 7}Â
Left rotate of even number = {4, 6, 8, 2}Â
Right rotate of odd number = {7, 1, 3, 5}Â
Combining Both odd and even number alternatively.
Input: A = {1, 2, 3, 4, 5, 6}Â
Output: {5, 4, 1, 6, 3, 2}Â
Â
Approach:
- It is clear that the odd elements are always on even index and even elements are always laying on odd index.
- To do left rotation of even number we choose only odd indices.
- To do right rotation of odd number we choose only even indices.
- Print the updated array.
Below is the implementation of the above approach:
Java
// Java program to implement // the above approach   import java.io.*; import java.util.*; import java.lang.*;   class GFG {       // function to left rotate     static void left_rotate(int[] arr)     {         int last = arr[1];         for (int i = 3;             i < arr.length;             i = i + 2) {             arr[i - 2] = arr[i];         }         arr[arr.length - 1] = last;     }       // function to right rotate     static void right_rotate(int[] arr)     {         int start = arr[arr.length - 2];         for (int i = arr.length - 4;             i >= 0;             i = i - 2) {             arr[i + 2] = arr[i];         }         arr[0] = start;     }       // Function to rotate the array     public static void rotate(int arr[])     {         left_rotate(arr);         right_rotate(arr);         for (int i = 0; i < arr.length; i++) {             System.out.print(arr[i] + " ");         }     }       // Driver code     public static void main(String[] args)     {         int arr[] = { 1, 2, 3, 4, 5, 6 };           rotate(arr);     } } |
5 4 1 6 3 2
Time Complexity: O(N)Â
Auxiliary Space: O(1)
Â
Please refer complete article on Rotate all odd numbers right and all even numbers left in an Array of 1 to N for more details!
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!



