/*以123的全排列为例:
1 123
2 132
3 231
4 213
5 312
6 321
*/
/*
结果可以分为三部分:123 132; 213 231; 312 321;
对于123 132,去掉1后23可看作是其子问题
*/
import java.io.IOException;
public class PermulateArray{
static int size;
static int count=0;
static char[] charArray;
public static void main(String[] args)throws IOException{
String input="123";
size=input.length();
count=0;
charArray=new char[size];
for(int i=0;i<size;++i){
charArray[i]=input.charAt(i);
}
Permulation(size);
}
public static void Permulation(int newSize){
if(newSize==1)
return;
for(int i=0;i<newSize;++i){
Permulation(newSize-1);
if(newSize==2)
display();
rotate(newSize);
}
}
public static void rotate(int newSize){
int i;
int position=size-newSize;
char temp=charArray[position];
for(i=position+1;i<size;++i){
charArray[i-1]=charArray[i];
}
charArray[i-1]=temp;
}
public static void display(){
System.out.print(++count+" ");
for(int i=0;i<size;++i)
System.out.print(charArray[i]);
System.out.println();
}
}