递归生成全排列(常规)
来源:互联网 发布:毕鑫业 知乎 编辑:程序博客网 时间:2024/05/29 05:54
#include <stdio.h>
inline void Swap(char& a, char& b)
{// 交换a和b
char temp = a;
a = b;
b = temp;
}
void Perm(char list[], int k, int m)
{ //生成list [k:m ]的所有排列方式
int i;
if (k == m) {//输出一个排列方式
for (i = 0; i <= m; i++)
putchar(list[i]);
putchar('\n');
}
else // list[k:m ]有多个排列方式
// 递归地产生这些排列方式
for (i=k; i <= m; i++) {
Swap (list[k], list[i]);
Perm (list, k+1, m);
Swap (list [k], list [i]);
}
}
int main()
{
char s[]="123";
Perm(s, 0, 2);
return 0;
}
inline void Swap(char& a, char& b)
{// 交换a和b
char temp = a;
a = b;
b = temp;
}
void Perm(char list[], int k, int m)
{ //生成list [k:m ]的所有排列方式
int i;
if (k == m) {//输出一个排列方式
for (i = 0; i <= m; i++)
putchar(list[i]);
putchar('\n');
}
else // list[k:m ]有多个排列方式
// 递归地产生这些排列方式
for (i=k; i <= m; i++) {
Swap (list[k], list[i]);
Perm (list, k+1, m);
Swap (list [k], list [i]);
}
}
int main()
{
char s[]="123";
Perm(s, 0, 2);
return 0;
}
- 递归生成全排列(常规)
- 全排列生成 (递归+非递归)
- 递归生成全排列
- 全排列生成算法(非递归)
- 递归函数生成全排列
- (递归)全排列
- 递归解决全排列生成算法
- 递归生成集合的全排列
- 递归解决全排列生成算法
- 递归解决全排列生成算法
- 递归解决全排列生成算法
- 全排列算法(递归)
- 全排列(递归)js
- 全排列(非递归)
- 全排列算法(递归)
- 全排列(next_permutation,递归)
- 全排列(递归与非递归)
- 手写全排列(递归 | 非递归)
- Glib库的安装和编译
- Hibernate之inverse与cascade的使用
- linux start anlysis
- Java学习大全 之 Servlet
- Java学习大全 之 Struts1
- 递归生成全排列(常规)
- Flex中ByteArray与BitmapData互相转换实现图片的二进制保存与复原
- 应遵循的PL/SQL编码规则
- Hibernate之inverse与cascade的使用(2)
- Java小对象的解决之道——对象池(Object Pool)的设计与应用
- 编辑sqlplus命令
- php 通过文件传数组
- *简单脚本测试--利用date进行文件的创建*
- 数据库生成xml格式