回溯法——穷举所有排列

来源:互联网 发布:神经网络 凸优化问题 编辑:程序博客网 时间:2024/06/05 09:40

描述
输入一个小于10的正整数n,按把每个元素都交换到最前面一次的方法,输出前n个小写字母的所有排列。
 
输入
输入一个小于10的正整数n。
 
输出
按把每个元素都交换到最前面一次的方法,输出前n个小写字母的所有排列。
 
输入样例
3
 
输出样例
abc
acb
bac
bca
cba
cab

直接贴代码= =

#include <iostream>using namespace std;char a[10] = {'a','b','c','d','e','f','g','h','i','j'};int n;void search(int m);void output();int main(){    cin >> n;    search(0);}void search(int m){    if(m == n)    {        output();    }    else    {        for(int i = m; i < n; i++)        {            swap(a[i], a[m]);            search(m + 1);            swap(a[i], a[m]);        }    }}void output(){    for(int i = 0; i < n; i++)    {        cout << a[i];    }    cout << endl;}



1 0
原创粉丝点击