Friday, June 12, 2015

Rotating Array in Java

public class RotateArray {

public static void main(String[] args) {
//e.g {0,1,2,3,4,5,6,7}  N =4 should return {4,5,6,7,0,1,2,3}.
int[] input = {1,4,2,6,3,5,9,8};
int inputCopy[]=new int[input.length];;
int shiftingBy=2;
System.out.println("input.length"+input.length);
for (int i = 0; i<input.length; i++ )
{
inputCopy[getNextIndex(i,input.length,shiftingBy)]=input[i];
}
for(int i:inputCopy)
System.out.println(i);
}

public static int getNextIndex(int currentPosition, int arrLength, int shiftBy)
{
int reIndex=currentPosition-shiftBy;
if(reIndex<0)
{
return arrLength+reIndex;
}
return reIndex;
}
}

Reversing Array in half of O(n)

public class ReverseArray {

public static void main(String[] args) {
//e.g {0,1,2,3,4,5,6,7}  should return {7,6,5,4,3,2,1,0}
int[] input = {0,1,2,3,4,5,6,7};
for(int k:input)
     System.out.print(k);

                int i = -1;
                int j = input.length;
                int tmp = 0;
                while (i++<j--)
               {
                  tmp = input[i];
                  input[i] = input[j];
                  input[j] = tmp;
                }
                System.out.println();
                for(int k:input)
                    System.out.print(k);
       
}
}