Reversal Algorithm for Array Rotation

Method:

1. Reverse(0,d-1)
2. Reverse(d,n-1)
3. Reverse(0,n-1)

Code:

import java.util.*;

public class Solution {
    
    static void reverse(int[] a, int start, int end){
        int temp = 0;
        for(int i=start,j=end; i<j; i++,j--){
            temp = a[i];
            a[i] = a[j];
            a[j] = temp;
        }
       return;
    }
    
    static void rotate(int[] arr, int d){
        int n = arr.length;
        reverse(arr,0,d-1);
        reverse(arr,d,n-1);
        reverse(arr,0,n-1);
    }

    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5, 6, 7};
        int d =2;
        rotate(arr,d);
        for(int i=0; i<arr.length; i++){
            System.out.print(arr[i]+" ");
        }
       }

}

Output:
3 4 5 6 7 1 2 

Comments

Popular posts from this blog

Rearrange Array in Maximum-Minimum form

Position of rightmost different bit