What is the fastest algorithm for circle shifting array for M positions? For example, [3 4 5 2 3 1 4] shift M = 2 positions should be [1 4 3 4 5 2 3
[3 4 5 2 3 1 4]
[1 4 3 4 5 2 3
static int [] shift(int arr[], int index, int k, int rem) { if(k <= 0 || arr == null || arr.length == 0 || rem == 0 || index >= arr.length) { return arr; } int temp = arr[index]; arr = shift(arr, (index+k) % arr.length, k, rem - 1); arr[(index+k) % arr.length] = temp; return arr; }