递归生成排列
来源:互联网 发布:ubuntu 合上盖子 黑屏 编辑:程序博客网 时间:2024/05/19 22:58
写一个简单的小程序递归生成a、b、c 的排列组合
#include<iostream.h>typedef char Type;void Perm(Type a[], int k, int n);void main(){Type array[3]={'a','b','c'};Perm(array,0,2);}void Perm(Type a[], int k, int n){if (k==n) {//输出排列for (int i=0; i<=n; i++) cout << a[i]<<" ";cout << endl;}else//a[k:n]中包含多个排列,递归生产这些排列for (int i=k; i<=n; i++) { Type t = a[k]; a[k] = a[i]; a[i]=t; Perm(a, k+1, n); //a[k+1:n]的所有排列 t = a[k]; a[k] = a[i]; a[i] = t;}}
参考文献:《计算机算法(C++语言描述)》第2版 霍罗维兹 (Ellis Horowitz)
0 0
- 递归函数生成排列
- 递归函数生成排列
- 递归生成排列
- 递归生成全排列
- 排列生成算法--递归法
- Permutations 排列的生成, 递归
- 递归函数生成全排列
- 递归 —— 生成排列
- 排列生成——递归
- 全排列生成 (递归+非递归)
- 非递归生成所有排列(knuth)
- 递归生成全排列(常规)
- 递归解决全排列生成算法
- 递归生成集合的全排列
- 全排列生成算法(非递归)
- 递归解决全排列生成算法
- 递归解决全排列生成算法
- 递归解决全排列生成算法
- haslayout 问题的调试与解决
- android 面试题001
- 关于初创型公司对公司网站的开发与管理内容
- supervisord
- Mac OS 下编译OpenCV for iOS ,android ,mac os
- 递归生成排列
- IE6兼容性问题及IE6常见bug
- Swift 通知的使用(十一)
- 总是在 COleDispatchDriver::ReleaseDispatch() 内部 m_lpDispatch = NULL; 处触发异常
- 优化多个else if的情形
- MAC os下自己编译opencv源码得到opencv2.framework的简单使用例子
- 文章标题
- Markdown 语法手册
- 大陆AndroidApp开发者更新SDK