【NOJ1324】【算法实验一】【回溯算法】穷举所有排列


1324.穷举所有排列

时限:100ms 内存限制:10000K  总时限:300ms

描述

输入一个小于10的正整数n,按把每个元素都交换到最前面一次的方法,输出前n个小写字母的所有排列。


#include <iostream>
using namespace std;
int n;
void dfs(int m);
char a[10]={'a','b','c','d','e','f','g','h','i','j'};

int main()
{
	cin>>n;
	dfs(0);
	return 0;
}

void dfs(int m)
{
	if(m==n){
		for(int i=0;i<n;i++)
			cout<<a[i];
		cout<<endl;
	}
	else{
		for(int i=m;i<n;i++){
			swap(a[i],a[m]);	//¼Çס
			dfs(m+1);
			swap(a[i],a[m]);
		}
	}
}

猜你喜欢

转载自blog.csdn.net/qq_41727666/article/details/82886958