private void rearrangeUtil(int input[], int start) {
        int i = start + 1;
        int v = input[start];
        while (v > 0) {
            int t = input[v - 1];
            input[v - 1] = -i;
            i = v;
            v = t;
        }
    }
Date 12/30/2015

Given an array of size n where elements are in range 0 to n-1. Rearrange elements of array
such that if arr[i] = j then arr[j] becomes i.

Time complexity O(n)
Space complexity O(1)

http://www.geeksforgeeks.org/rearrange-array-arrj-becomes-arri-j/
src/com/interview/array/RearrangeArrayPerIndex.java