设计一算法产生1∽n所有排列!哪位高人能解!
设计一算法产生1∽n所有排列! 问题点数:5、回复次数:1Top
1 楼sms88(白板http://shop34112882.taobao.com)回复于 2006-03-19 22:03:16 得分 5
#include<stdio.h>
#define M 3 //对1,2,...M间的数进行全排列
int B[M];
void pailie(int n)
{
if( n == 1 )
{
for(int j = 0 ; j < M ; j++ )
{
printf("%d ",B[j]);
}
printf("\n");
}
for( int i=1 ; i <=n ; i++ )
{
int a=B[i-1]; //----(a)
B[i-1]=B[n-1];
B[n-1]=a;
pailie(n-1); //递归调用
a=B[n-1];
B[n-1]=B[i-1];
B[i-1]=a; //--- (b)
}
}
int main()
{
for(int i=0;i<M;i++)
B[i]=i+1;
pailie(M);
return 0;
}Top




