算法思想过程:
集合R,r1,r2,r3,...,rn为集合R的元素。
当元素n为1个时,perm(R)=(r),其中r为集合R中唯一的元素;
当n>1时,perm(R)由(r1)perm(R1),(r2)perm(R2),...,(rn)perm(Rn)组成。
package cn.aaa;
public class perm {//排序函数
public static void perm(Object list[],int k,int m){ //k为起点,m为终点
//产生list[k:m]的所有排列
if(k==m){ //只剩下一个元素for(int i=0;i<=m;i++)
System.out.print(list[i]);
System.out.println();
}else{ //还有很多个元素,递归产生排列
for(int i=k;i<=m;i++){
swap(list,k,i);
perm(list,k+1,m);
swap(list,k,i);
}
}
}
//交换函数,交换list中第k个位置与第m个位置的值
public static void swap(Object list[],int k,int m){
Object temp;
temp = list[k];
list[k] = list[m];
list[m] = temp;
}
public static void main(String[] args) {
Object list[] = {1,2,3,4};
System.out.println("list的所有排列为:");
}
}