public void nextPermutation1(int[] num) {
    	if(num.length<=1) return;
    	if(IsLargest(num, 0))
    	{
    		Arrays.sort(num);
    		return;
    	}
    	int startpos=0;
    	while(startpos<num.length)
    	{
    		if(!IsLargest(num, startpos+1))
    		{
    			startpos++;
    		}else
    		{
    			int oldStart = num[startpos];
    			Arrays.sort(num, startpos, num.length);
    			for(int i=startpos; i<num.length; i++)
    			{
    				if(num[i]>oldStart)
    				{
    					int newstart = num[i];
    					for(int j=i; j>startpos; j--)
    					{
    						num[j] = num[j-1];
    					}
    					num[startpos] = newstart;
    					return;
    				}
    			}
    			
    			
    		}
    	}
        
    }