dfs实现数的全排列

代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
bool vis[15];
int a[15];
int n;
void dfs(int x){
	if(x==n+1){
		for(int i=1;i<=n;i++)
		cout<<a[i]<<' ';
		cout<<endl;
		return;
	}
	for(int i=1;i<=n;i++)
	{
		if(!vis[i]){
			vis[i]=1;
			a[x]=i;
			dfs(x+1);
			vis[i]=0;
		}
	}
	return;
}
int main(){
	while(cin>>n){
		memset(vis,0,sizeof(vis));
		dfs(1);
	}	
	return 0;
}
posted @ 2019-03-25 12:52  ChunhaoMo  阅读(331)  评论(0编辑  收藏  举报