对于n个不同元素集合R的全排列问题,可以用一个简单递归的公式表达:
当n = 1时, P(R) = r, 否则
P(R) = ri + P(R - {ri}) (i = 1, 2, ..., n)
P(R) : 不含重复元素的R集合的全排列
+: 表示连接
根据上面的公式写出递归计算出无重复元素序列的全排列:
Perm(Type list[], int k, int m)
if k=m
then print( list )
else
for i=k to m do
Swap( list[k],list[i] );
Perm(list,k+1,m);
Swap(