public int findMinimumSwaps(int input[], Map<Integer, Integer> pair) {
        Map<Integer, Integer> index = new HashMap<>();
        for (int i = 0; i < input.length; i++) {
            index.put(input[i], i);
        }
        return findMinimumSwapsUtil(input, pair, index, 0);
    }
Date 12/30/2015
@author Tushar Roy

Given input array with every element in array having its pair element. How many minimum swaps needs to be
done so that all pair elements are adjacent to each other.

Time complexity is O(2^n)

http://www.geeksforgeeks.org/minimum-number-of-swaps-required-for-arranging-pairs-adjacent-to-each-other/
src/com/interview/recursion/SetPairTogether.java