递归全排列
来源:互联网 发布:安卓音乐播放器 知乎 编辑:程序博客网 时间:2024/05/09 00:56
#include <stdio.h>
#include <stdlib.h>
#define SWAP(x, y, t) ((t)=(x), (x)=(y), (y)=(t))
int count = 0;
void perm(char* list, int m, int n)
{
char temp;
int i;
if (m==n)
{
printf("%s %d\n", list, ++count);
}
else
{
for (i = m; i <= n;i++)
{
SWAP(list[m], list[i], temp);//从第二个数开始依次与第一个数互换
perm(list, m + 1, n);//求第二个数到最后一个数字的全排列
SWAP(list[m], list[i], temp);//互换的还原
}
}
}
void main()
{
char list[] = "abc";
perm(list, 0, 2);
printf("总共有%d种排列方式.\n", count);
system("pause");
}
#include <stdlib.h>
#define SWAP(x, y, t) ((t)=(x), (x)=(y), (y)=(t))
int count = 0;
void perm(char* list, int m, int n)
{
char temp;
int i;
if (m==n)
{
printf("%s %d\n", list, ++count);
}
else
{
for (i = m; i <= n;i++)
{
SWAP(list[m], list[i], temp);//从第二个数开始依次与第一个数互换
perm(list, m + 1, n);//求第二个数到最后一个数字的全排列
SWAP(list[m], list[i], temp);//互换的还原
}
}
}
void main()
{
char list[] = "abc";
perm(list, 0, 2);
printf("总共有%d种排列方式.\n", count);
system("pause");
}
0 0
- 递归--全排列
- 全排列递归算法
- 递归 全排列 问题
- 全排列递归算法
- 全排列算法-递归
- 全排列,递归实现
- 递归实现全排列
- 递归输出全排列
- 递归应用-全排列
- 递归实现全排列
- 全排列递归算法
- 全排列递归算法
- 递归全排列
- 递归写全排列
- 递归之全排列
- 递归枚举全排列
- 全排列递归算法
- 全排列,递归。
- Erlang中使用protobuff
- http在线测试工具
- 如何用viso画状态图
- Python网页抓取正则表达式应用练习-爬取基金信息
- sybase 触发器创建
- 递归全排列
- jquery 如何设置css的important
- 软件测试中桩模块与驱动模块的概念与区别
- POJ 1703 并查集,感觉很好
- hdu 4081 Qin Shi Huang's National Road System(最小生成树变形)
- HDU 2734 Quicksum [Ad Hoc]
- iOS image-图片设置圆角
- idea里运行Spark1.6 Example
- Spark项目经验总结--Spark优化策略