深度优先搜索生成全错序排列
2017-12-24 18:58
239 查看
怀恋啊,记得高中和大一之间的暑假里刚学c语言时我想写个24点程序,就搜到了用递归实现的这个全错序程序,当时看了好久才看懂,怀恋怀恋。
注释掉的是库函数里的,书上说后面会学,还是位运算实现的,期待。
这里用used数组记录访问的二叉树的深度,基本上也能说是个栈吧。
#include <algorithm> #include <iostream> using namespace std; #define MAX_N 100 bool used[MAX_N]; int perm[MAX_N]; void permutation(int pos, int n) { if( pos == n ){ for (int i = 0; i < n; i++) { cout << perm[i] << ' '; } cout << '\n'; } for (int i = 0; i < n; i++) { if (!used[i]) { perm[pos] = i; used[i] = true; permutation(pos + 1, n); used[i] = false; } } } /* void permutation(int n) { for (int i = 0; i < n; i++) { perm[i] = i; } do { } while ( next_permutation(perm, perm + n) ); } */ int main() { for (int i = 0; i < 5; i++) { perm[i] = i; } permutation(0, 5); return 0; }
注释掉的是库函数里的,书上说后面会学,还是位运算实现的,期待。
这里用used数组记录访问的二叉树的深度,基本上也能说是个栈吧。
相关文章推荐
- Java实现图:邻接矩阵表示、深度优先搜索、广度优先搜索、无向图的最小生成树
- Generate parentheses,生成括号对,递归,深度优先搜索。
- 利用深度优先搜索做的随机生成地图的迷宫小游戏
- 深度优先搜索生成迷宫
- 数据结构学习_图(1)深度优先搜索、广度优先搜索和最小生成树
- 深度优先搜索应用_深度优先生成树&&割点判断
- 深度优先搜索和广度优先搜索的比较与分析
- 【PAT 1053】 Path of Equal Weight 深度优先搜索
- 回溯法实例-深度优先搜索
- Leetcode 78. Subsets Python DFS 深度优先搜索解法
- 深度优先搜索的实现
- 深度优先DFS和广度优先BFS,破圈法,拓扑序列,prim,克鲁斯卡尔等生成算法(需要用到并查集)迪杰斯特拉算法和弗洛伊德的总结
- ACM-POJ 1562 DFS 深度优先搜索
- 深度优先搜索练习之神奇的矩环
- 深度优先搜索遍历(DFS)——邻接表存储
- [AI]深度优先搜索
- cf460d2 动态规划+深度优先搜索
- NYOJ 20深度优先搜索
- "《算法导论》之‘图’":深度优先搜索、宽度优先搜索(无向图、有向图)
- 广度优先搜索与深度优先搜索的 java 实现