怎么用java实现输出a,b,c,d,e五个字符的所有可能的排列

怎么用java实现输出a,b,c,d,e五个字符的所有可能的排列

第1个回答  2008-09-07
public class FullArray ...{
public String[] s=...{"a","b","c"};
public void run()...{
int j2; //指向要对换的位置
int sLength=s.length;
for(int i=0;i<getP(s.length);i++)...{ //外层循环以便获取全部组合
String[] tempString=s.clone(); //由于对象传的是句柄也就是地址,因此为保证原来数组不变,必须使用对象克隆
for(int j=0;j<i;j++)...{ //i次的对换
j2=j%(sLength-1);
change(j2,tempString);
}
for(int l=0;l<sLength;l++)...{ //输出这一次对换后的排列
System.out.print(tempString[l]);
}
System.out.println();
}
}
public int getP(int i)...{ //获得全排列数all
int all=1;
for(int j=i;j>0;j--)...{
all=all*j;
}
return all;
}
public void change(int i,String[] tempString)...{//
String t="";
t=tempString[i];
tempString[i]=tempString[i+1];
tempString[i+1]=t;
}
public static void main(String[] args)...{
FullArray fa=new FullArray();
fa.run();
}
}

参考资料:http://www.diybl.com/course/3_program/java/javajs/2008315/104683.html

本回答被提问者采纳
相似回答