按照字典序生成1--n的排列
2013-05-02 11:24
344 查看
递归用得很巧妙。
//按照字典序生成1--n的排列 #include <iostream> #include <fstream> using namespace std; void print_permutation(int n, int* A, int cur) { int i, j; if(cur == n)//递归边界 { for(i = 0; i < n; i++) { cout<<A[i]; } cout<<endl; } else { for(i = 1; i <= n; i++)//尝试在A[cur]中填各种整数i { int ok = 1; for(j = 0; j < cur; j++) { if(A[j] == i)//如果i已经在A[0] -- A[cur - 1]中出现过,则不能再选 { ok = 0; break; } } if(ok) { A[cur] = i; print_permutation(n, A, cur + 1); } } } } int main() { int A[5] = {0}; int cur = 0; print_permutation(3, A, cur); }
相关文章推荐
- (POJ 3687)Labeling Balls [逆top序列] 求按照某种排列方式的字典序最小的top序列
- 全排列生成法(6种),字典序
- python给定n个字符串,请对n个字符串按照字典序排列
- 生成字典序排列(C++ STL) next_permutation函数
- 给定n个字符串,请对n个字符串按照字典序排列
- 字典序生成排列
- 今天开始学Java 给定n个字符串,请对n个字符串按照字典序排列。
- 数的组合问题,从n个数中选出m个数,结果按照字典序排列
- Next Permutation 生成下一排列 字典序生成法(重)
- n个字符串按照字典序排列
- 字符串的排列--字典序生成、回溯
- 将名字按照字典序排列
- 按字典序生成排列的算法(深度优先搜索)
- 字典序生成下一排列组合 poj 1146水
- 按照字典序枚举排列
- 31. Next Permutation (java 字典序生成下一个排列)
- 排列的字典序生成算法(自然解法)
- 华为OJ---给定n个字符串,对n个字符串按照字典序排列
- 减治法在生成全排列中的应用(JAVA)--回溯、Johnson-Trotter算法、自字典序
- hdoj1027Ignatius and the Princess II(模拟生成字典序排列)