数据结构:使用递归算法的全排列问题
#include <stdio.h>
int cont=1;
void print(int list[],int n)
{
int i;
printf("%8d:",cont++);
for(i=0;i<n;i++)
printf("%d",list[i]);
printf("\n");
}
void perm(int list[],int k,int n)
{
int i,t;
if(k == n-1) print(list,n);
else
{ for(i=k;i<n;i++)
{
t = list[k];
list[k] = list[i];
list[i] = t;
perm(list,k+1,n);
t = list[i];
list[i] = list[k];
list[k] = t;
}
}
}
int main()
{
int str[100],n,i;
printf("input a int:");
scanf("%d",&n);
for(i=0;i<n;i++)
str[i] = i+1;
printf("input the result:\n");
perm(str,0,n);
printf("\n");
return 0;
}
