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:
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
Post a Comment