c语言两种排序方法的组合,排列和组合算法的实现方法_C语言经典案例
排列和组合算法是考查递归的常见算法,这两种算法能用递归简洁地实现。
本人在经过多次摸索和思考之后,总结如下,以供参考。
程序代码如下:
#include
#include
char array[] = "abcd";
#define N 4
#define M 3
int queue[N] = {0};
int top = 0;
int flag[N] = {0};
void perm(int s, int n)
{
int i;
if (s > n)
{
return;
}
if (s == n)
{
for (i = 0; i < n; i++)
{
printf("%c", queue[i]);
}
printf("\t");
return ;
}
for (i = 0; i < n; i++)
{
if (flag[i] == 0)
{
flag[i] = 1;
queue[s] = array[i];
perm(s+1, n);
flag[i] = 0;
}
}
}
void comb(int s, int n, int m)
{
int i;
if (s > n)
return ;
if (top == m)
{
for (i = 0; i < m; i++)
{
printf("%c", queue[i]);
}
printf("\t");
return ;
}
queue[top++] = array[s];
comb(s+1, n, m);
top--;
comb(s+1, n, m);
}
int main()
{
printf("\nperm():\n");
perm(0, N);
printf("\ncombination():\n");
comb(0, N, M);
printf("\n");
return 0;
}
运行结果:
perm():
abcd abdc acbd acdb adbc adcb bacd badc bcad bcda
bdac bdca cabd cadb cbad cbda cdab cdba dabc dacb
dbac dbca dcab dcba
combination():
abc abd acd bcd
以上就是小编为大家带来的排列和组合算法的实现方法_C语言经典案例的全部内容了,希望对大家有所帮助,多多支持得牛网~
c语言两种排序方法的组合,排列和组合算法的实现方法_C语言经典案例相关推荐
- c语言排列组合的函数,c语言排列组合算法 排列和组合算法的实现方法_C语言经典案例...
想了解排列和组合算法的实现方法_C语言经典案例的相关内容吗,在本文为您仔细讲解c语言排列组合算法的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:c语言排列组合算法,下面大家一起来学习吧. ...
- 按照姓名升序排序的代码_好程序员Java培训分享Java集合的两种排序方法
好程序员Java培训分享Java集合的两种排序方法,Java集合的工具类Collections中提供了两种排序的方法,分别是: 1.Collections.sort(List list) 2.Coll ...
- 两种排序方法(直接判断)
题目描述 考拉有n个字符串字符串,任意两个字符串长度都是不同的.考拉最近学习到有两种字符串的排序方法: 1.根据字符串的字典序排序.例如: "car" < "car ...
- 使用Navicat和Transact-SQL语言两种方法创建、修改和删除表
修改基本表 数据库db100里 向employee中添加地址列 Mysql>alter table employee add address char(50); 增加课程名称必须取唯一值的约束条 ...
- 【字符串2】(删除公共字符、合法括号序列判断、两种排序方法、密码强度等级)
字符串题集 1. 删除公共字符 题目描述 题目分析 C++代码 2. 合法括号序列判断 题目描述 题目分析 C++代码 3. 两种排序方法 题目描述 题目分析 C++代码 4. 密码强度等级 题目描述 ...
- 刷题日记【第四篇】-笔试必刷题【Fibonacci数列+合法括号序列判断+两种排序方法+求最小公倍数】
目录 选择题模块 1. 以下对继承的描述错误的是(A) 2. 在Java中,一个类(B) 3. 以下不是Object 类的方法的是(D) 4. Test.main() 函数执行后的输出是(D) 编程题 ...
- python 两种排序方法 sort() sorted()
python中有两种排序方法,list内置sort()方法或者python内置的全局sorted()方法 区别为: sort()方法对list排序会修改list本身,不会返回新list.sort()只 ...
- Java两种排序方式快慢比较
2019独角兽企业重金招聘Python工程师标准>>> Java中List的排序方式有两种,现在我们测试下这两种排序方式的快慢吧,我们需要用到两个类, 一个是运行程序的Main类,另 ...
- day06-元组字典集合常用两种排序
Day06-元组&字典&集合&常用两种排序 一.tuple元组 1.概述 和列表相似,本质上是一种有序的集合 元组和列表的不同之处: a.列表:[ ] 元组:( ) b ...
最新文章
- 需要排序的最短子数组的长度——是一个排序好的数组,中间某一部分被打乱了,让你找出打乱的那个子数组...
- WF4 持久化 第四篇
- 与时间赛跑:微盟的数据恢复为什么需要这么长时间
- Unity Text 插入超链接
- PHP超级全局变量总结
- 机器学习——对三种模式的看法
- 应该用怎样的态度对待孩子?
- 总体和样本、统计量和抽样分布
- R语言:企业风险分析(2)【蒙特卡罗模拟,Monte-Carlo Simulation】
- STATA画图命令(一)
- edge启动页北hao123流氓绑定的其中一个解决方法
- 免费PHPCMS采集规则文章采集器采集百万数据
- 不带HDMI的PD HUB方案深度解析(LDR6023A)性价比极高的充电数据方案
- PDF转图片哪个格式最清晰?PDF转高清图片的方法
- Faceless —— 开源的匿名社交应用
- 2345浏览器劫持主页解决办法
- 最全的Java版本历史
- mysql的安装后;Navicat连接出现1103详细解决方式
- 路在脚下、梦在身上,技能提升不是为了别人!
- 这样的简历,到哪里都是被淘汰的命!
热门文章
- MindManager: Draw your own MindMap!
- 用Selenium自动化测试时,让ChromeDriver中不显示“正受到自动测试软件控制”
- C#内存泄露与资源释放 经验总结
- 为什么我的SQL server 在附加数据库后,数据库总是变成了只读?
- nginx html 替换,Nginx 服务内容替换功能(sub模块)
- oracle 11gr2 bbed 安装,oracle11gR2 安装bbed工具
- python计算和差积商_Python与处理计算的区别
- 通过nginx访问.html出现Access Denied提示怎么解决(亲测)
- PHP的替换strstr strtr str_replace substr_replace
- 项目管理指标_企业信息化——项目管理