public void nextPermutation(int[] num) {
    	int i = num.length - 1;
    	while (i > 0 && num[i-1] >= num[i])
    		i--;
    	
    	if (i == 0)
    	{
    		Arrays.sort(num);
    		return;
    	}
    	
    	int j = num.length - 1;
    	while (num[j] <= num[i-1])
    		j--;
    	
    	int tmp = num[i-1];
    	num[i-1] = num[j];
    	num[j] = tmp;
    	
    	j = num.length -1;
    	while (i < j)
    	{
        	tmp = num[i];
        	num[i] = num[j];
        	num[j] = tmp;
        	i++;
        	j--;
    	}
    }