回溯法求n的全排列
2016-10-18 20:58
120 查看
代码如下:
运行截图:
#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; }
运行截图:
相关文章推荐
- 回溯法实现排列(摘自《计算机程序设计经典题解》)
- 将一串字符串全排列输出(回溯法)
- 算法java实现--回溯法--圆排列问题--排列树
- 回溯法-求全排列
- 回溯法-求全排列
- 0031算法笔记——【回溯法】旅行员售货问题和圆排列问题
- python 回溯法 子集树模板 系列 —— 11、全排列
- 回溯法的一个典型应用,在1~x中选出n个数的排列方式,且相邻两个数不一样·
- 题目1120:全排列(回溯法)
- 求数对的排列(回溯法)
- 回溯法求解全排列问题(可去除重复排列)
- 0031算法笔记——【回溯法】旅行员售货问题和圆排列问题
- 回溯法 求所有子集 所有排列
- 最简回溯法求全排列-递归形式 快速领悟回溯法窍门
- n个数的排列问题(回溯法)
- 排列 或组合问题的解法(包含回溯法)
- 0032算法笔记——【回溯法】电路板排列问题和连续邮资问题
- 0032算法笔记——【回溯法】电路板排列问题和连续邮资问题
- 回溯法求全排列
- 解答树问题可分为子集生成和排列生成问题,都可以用回溯法解决并且是很优化的方案