回溯法求n的全排列

2018-06-17 23:41:25来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

 

代码如下:

#include <iostream>
#include <algorithm>
#include <stdio.h>
#include <cstring>
#include <cmath>
#include <map>
#include <bitset>
using namespace std;
typedef long long LL;
int x[105];
int n;
void Backtrack(int t)
{
    if(t==n){
        for(int i=1;i<=n;i++)
        cout<<x[i]<<" ";
        cout<<endl;
        return ;
    }
    for(int i=t;i<=n;i++)
    {
        swap(x[i],x[t]);
        Backtrack(t+1);
        swap(x[i],x[t]);
    }
}
int main()
{
    for(int i=1;i<105;i++)
        x[i]=i;
    while(scanf("%d",&n)!=EOF)
    {
        cout<<n<<"的全排列如下:"<<endl;
        Backtrack(1);
        cout<<"finish!"<<endl;
    }
    return 0;
}

 

运行截图:

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Qt隐含共享是如何工作的

下一篇:Difficult Melody(映射)