就像 以前写 素数环 是最简单的深搜 总情况是 6!
但是你可能每一层都是for(1—n)然后判断有没有用过 其实时间复杂度是 6^6而不是 6!
下面是N!的
每次都和自己后面的去换就行了 但不是从小到大排列的 想想为什么 注意回溯
#include <stdio.h>
int sum;
void f(int x[], int k)
{
int i,t;
if(k>=5)
{
for(i=0; i<5; i++)
printf("%d ",x[i]);
printf("\n");
//sum++;
return;
}
for(i=k; i<5; i++)
{
{
t=x[k];
x[k]=x[i];
x[i]=t;
}
f(x,k+1);
x[i]=x[k],
x[k]=t;
}
}
int main()
{
int x[] = {1,2,3,4,5};
//sum=0;
f(x,0);
// printf("%d\n",sum);
return 0;
}