public int[] sort(T[] a)
	{
		// Allocate space just once. Non-static aux used
		int[] aux = new int[a.length];
		int[] perm = new int[a.length];
		for (int i = 0; i < a.length; i++)
			perm[i] = i;
		indirectSort(a, perm, aux, 0, a.length - 1);
		return perm;
	}