普通递归算法:输出n个数的所有全排列
2010-03-26 22:26
281 查看
#include<iostream> using namespace std; void Permutation(int a); int main() { Permutation(5); return 0; } void Print(int a[],int n) { for(int i=0;i<n;i++) cout<<a[i]; cout<<endl; } void Recursion(int a[],int n,int k) { if(k==0) Print(a,n); else { int temp; for(int i=0;i<=k;i++) { temp=a[i]; a[i]=a[k]; a[k]=temp; Recursion(a,n,k-1); temp=a[i]; a[i]=a[k]; a[k]=temp; } } } void Permutation(int n) { int *a=new int ; for(int i=0;i<n;i++) a[i]=i+1; Recursion(a,n,n-1); delete []a; }
相关文章推荐
- 输出字符串的所有全排列(递归法和非递归,非递归采用组合数学的字典序)
- 算法思维(递归)训练:输出字符串字符的全排列
- 设计算法打印出一串字符的全排列。假设所有的字符都不同。
- 【递归】输出给定的n对括号对的所有合法序列
- 递归实现输出n个整数的全排列和所有子集
- Swift - 排列组合之全排列 (输入一个字符串,输出该字符串包含的字符的所有组合)
- 算法思维(递归)训练:输出字符串长度为M的子序列
- 设计相应的数据结构和算法,尽量高效的统计一片英文文章(总单词数目)里出现的所有英文单词, * 按照在文章中首次出现的顺序打印输出该单词和它的出现次数。
- 非递归,按序输出集合的全排列
- 排列数(输出0~9的全排列)-蓝桥杯算法提高
- 算法学习笔记7-非递归方法写一个全排列
- [Java]用递归与非递归的形式输出给定目录的所有文件名
- [算法] 输出 字符串的全部子组合 [dfs - 递归神技]
- [算法] 字符串的全排列 [dfs - 递归神技]
- 递归解决全排列生成算法
- JavaSE8基础 File 函数递归输出指定文件夹中的所有文件名(模仿Linux)
- 递归输出给定目录下的所有目录和文件
- 递归输出当前目录下的所有文件以及文件大小
- 算法 - 输出一个字符串的全排列(C++)
- 编写算法输出从n个数中取k个(k小于等于n)的所有组合