C++ 输出全排列 简单递归 N皇后问题
来源:互联网 发布:淘宝商城家具沙发 编辑:程序博客网 时间:2024/05/24 04:18
做C++程序题需要用到1-9的全排列,然而比较菜还不能熟练地写递归,在网上找了几个全排列算法又不太适合自己的程序,所以我把前几天做过的N皇后问题的递归算法改进了一下,使其可以输出全排列,具体算法如下:
#include <iostream>using namespace std;#define max 4int n;int a[max]; //记录排序后的数字串 int Pailie(int pos){for(int i = 0; i < pos - 1; i++) //检测a[pos - 1]位置上是否与已有的数字重复,若重复则回溯{if(a[pos - 1] == a[i])return 0;}if(pos == max) //若已经得到一个全排列,就把它输出{for(int i = 0; i < max; i++)cout<<a[i];cout<<endl;return 0;}for(int i = 1; i <= max; i++){a[pos]=i;Pailie(pos + 1); //放下一个数字}} int main(){Pailie(0);return 0;}
缺点是时间复杂度较大。
其它算法:http://blog.csdn.net/a358463121/article/details/45543879
2n皇后解法:http://www.2cto.com/kf/201403/285903.html
0 0
- C++ 输出全排列 简单递归 N皇后问题
- 全排列问题与n皇后问题
- C递归的N皇后问题.
- 递归求解N皇后问题(c语言)
- 递归输出全排列
- 递归 输出全排列
- N皇后问题(回溯VS全排列)
- 递归回溯问题的四道经典题:N皇后,组合,全排列,二叉树路径和
- 普通递归算法:输出n个数的所有全排列
- 非递归的输出1-N的全排列
- n皇后问题【递归】
- 递归 N皇后问题
- N皇后问题 (递归)
- 递归---n皇后问题
- c语言递归全排列问题
- 递归 全排列 问题
- n个整数全排列的递归实现(C++)
- 输出全排列--循环+递归
- 随机森林总结
- Android学习笔记——日志工具的使用
- (翻译)Javascript-How Prototypal Inheritance really works
- MaterialDesign5.0详解
- halou
- C++ 输出全排列 简单递归 N皇后问题
- [联表] -- Yii2实现跨mysql数据库关联查询排序功能
- CSS:首字母字号变大而不影响下划线
- Use QPST dump eMMC image
- XWiki Rendering Syntax Markdown.jar各版本下载地址搜集汇总
- 邓仰东专栏|机器学习的那些事儿(四):基于GPU的机器学习实例之AlphaGO
- c++ 和 lua 写cocos2dx的区别
- linux 原子操作
- pthread_cond_wait 详解