集合排序经典递归算法
#一座城市的眷念#
问题:
给定一个集合如:{1,2,3,4,5,6,7,8,9},试写一算法计算共有多少种排列(要求用递归思想)。
核心代码:
void arrange(int A[],int k,int n) //求A的前K-1个元素
{
if(k==n)//列的算法
{
for(int i=0;i<=n;i++){
printf("%d",A[i]);
}
printf("\n");
}
else{
for(i=k;i<=n;i++){
Exchange(A[k],A[i]);
arrange(A,k+1,n);
Exchange(A[k],A[i]);
}
}
}
Exchange(int a,int b,int temp){
temp=a;
a=b;
b=temp;
}
#爱这座城,念故乡人#