排列
就是指把一行数字不断交换位置每次不一样的都是一种新的排序方式。
例子(1,2)和(2,1)就是不一样的。
代码
#include<cstdio>
using namespace std;
int n,a[8],b[8];
void dg(int x)
{
int i;
if(x==n+1)
{
for(i=1;i<=n;++i)printf("%d%c",a[i],i==n?'\n':' ');
return;
}
for(i=1;i<=n;++i)
if(!b[i])
{
a[x]=i;b[i]=1;dg(x+1);a[x]=b[i]=0;
}
}
int main()
{
scanf("%d",&n);
dg(1);
return 0;
}
当这个代码我都一时半会没有敲出来我就知道深搜和递归我得复习了。。。
真痛苦这么简单的东西都能忘且还能想这么久。。。