c语言中全排列问题

如题所述

第1个回答  2012-07-25
//输入一个数输出这个数所有的排列,递归做法

#include<stdio.h>
int a[100];
int n;
void output()
{
int i;
for(i=1;i<=n;i++)
printf("%3d",a[i]);
printf("\n");
}
void Swap(int &a,int &b) //注意取地址
{
int t;
t=a;
a=b;
b=t;
}
void pailie(int t)
{
int i;
if(t==n) //输出
{
output();
return ;
}
for(i=t;i<=n;i++)
{
Swap(a[i],a[t]); //交换
pailie(t+1);
Swap(a[t],a[i]); //换回
}
}
int main()
{
int i;
while(scanf("%d",&n)!=EOF&&n!=0)
{
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
pailie(1);
}
return 0;
}本回答被网友采纳
第2个回答  2012-07-25
冒泡法
第3个回答  2012-07-25
自己找本书看,任意一本数据结构的书都有详细的讲解排序
第4个回答  2012-07-25
说一下你的要求吧
第5个回答  2012-07-25
具体问题呢?
相似回答