基于算法分析与设计——以大学生程序设计竞赛为例这本书中的第三章3.1.2集合的全排列问题
本题提出的问题是要解决n个元素的n!中排列方式,设R={r1,r2,···rn},令Ri=R-{ri}。集合的全排列记为perm(X),
则(ri)perm(X)表示在全排列perm(X)的每一个排列前加上前缀ri得到的排列。R的全排列可归纳定义如下:
当n=1时,perm(R)=(r),其中r是集合R中唯一的元素;
当n>1时,perm(R)由(r1)perm(R1),(r2)perm(R2),···,(rn)perm(Rn)构成。
本问题采用java语言进行解决的代码如下:
public class suanfa_3_3 {
public void Perm(int list[],int k,int m) {
if(k==m) {
for(int i=0;i<=m;i++)
System.out.print(list[i]);
System.out.println();
}
else {
for(int j=k;j<=m;j++) {
swap(list,k,j);