//摘自算法笔记
#include<iostream>
using namespace std;
const int maxn=11;
int n,P[maxn],hashTable[maxn]={false};
void generateP(int index){if(index==n+1){//递归边界,已经处理完排列1~n位了//可以输出了for(int i=1;i<=n;i++){cout<<P[i];}cout<<endl;return;}for(int x=1;x<=n;x++){ //枚举1~n 试图将x填入P[index] 每次都从小到大枚举所有数字if(hashTable[x]==false){//如果x不在P[0]~P[index-1]中(前index-1已经填好了)P[index]=x;   //将x填入P中 也即是index位hashTable[x]=true; //记x在P中generateP(index+1); //处理排列的第index+1号位hashTable[x]=false; //已经处理完P[index]为x的子问题,还原状态,让第index位填其他数字前要先将此x放开,否则没机会了}}
}int main(){while(cin>>n){generateP(1);//从1开始填}return 0;
}
//C++全排列函数
/*#include <iostream>
#include <algorithm>
using namespace std;
int main()
{int num[3]={1,2,3};do{cout<<num[0]<<" "<<num[1]<<" "<<num[2]<<endl;}while(next_permutation(num,num+3));return 0;
}*/

全排列算法C++实现相关推荐

  1. [通用技术]在不同语言中用协程实现全排列算法(C++/Lua/Python/C#)

    我这里实现全排列的基本算法如下(C++): 1 #include <algorithm> 2 #include <iostream> 3 #include <vector ...

  2. 【转】全排列算法非递归实现和递归实现

    来源:http://blog.csdn.net/e3399/article/details/7543861 (一)递归的全排列算法 (A.B.C.D)的全排列为 1.A后面跟(B.C.D)的全排列 2 ...

  3. 全排列及相关扩展算法(一)——基础的回溯递归实现全排列算法

    1.全排列的定义和公式: 从n个数中选取m(m<=n)个数按照一定的顺序进行排成一个列,叫作从n个元素中取m个元素的一个排列.由排列的定义,显然不同的顺序是一个不同的排列.从n个元素中取m个元素 ...

  4. 全排列的java算法_全排列算法原理和实现

    评论 # re: 全排列算法原理和实现  回复  更多评论 #include #include #define CHESSNUM 9 using namespace std; /*********** ...

  5. 详讲全排列算法,及解决数字搭积木问题

    如果你是做这道题不会,那么你可以看这道题的解题思路,如果你是不太理解全排列算法,那么你可以通过这个题来理解. 题目描述: 小明最近喜欢搭数字积木.一共有10块积木,每个积木上有一个数字,0~9. 搭积 ...

  6. 字符串全排列算法_C#版_剑指OFFER

    字符串全排列算法_C#版_剑指OFFER 题目描述 ​题目描述 输入一个长度为 n 字符串,打印出该字符串中字符的所有排列,你可以以任意顺序返回这个字符串数组. 例如输入字符串ABC,则输出由字符A, ...

  7. FreeEIM 全排列算法原理和实现

     FreeEIM 全排列算法原理和实现 本文为原创,如需转载,请注明作者和出处,谢谢! 全排列是将一组数按一定顺序进行排列,如果这组数有n个,那么全排列数为n!个.现以{1, 2, 3, 4, 5 ...

  8. C++ vector 容器的全排列算法 next_permutation

    问题源于我要对4个数进行排列,自己用了笨拙的穷举算法一个4重循环也得到结果,其中对有相同字母的做排序加删除相邻相等元素的处理.可是如果对100个数进行排列难道用100重循环,后来发现C++11有现成的 ...

  9. 前端电商 sku 的全排列算法

    前端电商 sku 的全排列算法 什么是sku 聊聊常见的需求 解决思路 思路分解 上代码 什么是sku 针对电商而言: 1.SKU是指一款商品,每款都有出现一个SKU,便于电商品牌识别商品. 2.一款 ...

  10. 组合算法/全排列算法/求子集算法

    本文介绍组合算法,组合算法有很多,这里只介绍其中一种的两种形式. 全排列:全排列算法 组合:本文 子集算法:求子集算法 组合 leetcode实战:组合 给定两个整数 n 和 k,返回范围 [1, n ...

最新文章

  1. Best Time to Buy and Sell Stock II
  2. 华为提出基于进化算法和权值共享的神经网络结构搜索,CIFAR-10上仅需单卡半天 | CVPR 2020...
  3. python输入输出有问题_python – Modbus错误:[输入/输出]无从远程...
  4. 向DataTable中添加自定义的行
  5. java多线程总结五:线程池的原理及实现
  6. 服务器自检后显示scsi,请问一下,如何检测SCSI +RAID 5设置是否正确??
  7. 使用ArchUnit验证代码和体系结构约束
  8. [jQuery] jQuery和Zepto的区别?各自的使用场景?
  9. 移动web中的幻灯片切换效果
  10. ros机器人编程实践(12.2)- 用turtlebot仿真巡线机器人
  11. windows 删除php,windows软链接(mklink)的建立及删除的用法示例
  12. amazon账号关联|这三点要记牢
  13. lego_loam 代码阅读与总结
  14. 中年转行,拥抱互联网(上)
  15. 初学C语言,还在犹豫如何选择入门教材吗?这几本书籍建议收藏
  16. 3D打印机故障问题与解决总集
  17. Android 实现FlowLayout流式布局(热门标签)
  18. 美团基于跨平台 Flutter 的动态化平台建设
  19. 中国降低京沪高铁票价和速度
  20. BM1684实战记录

热门文章

  1. 笔记本键盘、触控板锁定技巧(3)
  2. 关于人工智能与深度学习技术的发展历程和未来展望
  3. 云服务器和虚拟主机有什么区别?
  4. Linux添加子账号,设置密码
  5. 阿里云OCR身份证信息识别
  6. Andorid 关于PTRACE ptrace(PTRACE_TRACEME,0 ,0 ,0);
  7. 2023年计算机专业还值得无脑梭哈吗——计算机类专业在读一年学生个人分享
  8. js去除字符串前后空格
  9. 美国藤校Top30大学对IB成绩的要求
  10. 微信小程序--动画animation