搜索算法生成全排列

生成全排列

#include <iostream>
#include <cstring>
using namespace std;
int temp[20],n;
void dfs(int *a,int cur)
{
   if(cur==n+1)
   {
      for(int j=1;j<n;j++)
         cout<<a[j]<<",";
      cout<<a[n]<<endl;
   }
   else for(int i=1;i<=n;i++)
   {
     if(temp[i]==0)
     {
        temp[i]=1;
        a[cur]=i;
        dfs(a,cur+1);
        temp[i]=0;
     }
   }
}
int main()
{
    while(cin>>n)
    {
       int a[20];
       memset(a,0,sizeof(a));
       memset(temp,0,sizeof(temp));
       dfs(a,1);
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_39905917/article/details/83039137