算法---会议最大安排问题

算法—会议最大合理安排问题

参考:趣学算法

代码:

#include <stdio.h>
#include <stdlib.h>
typedef struct meet {int beg;//开始int end;//结束int num;//会议编号
}meet;
int cmp44(meet m1,meet m2) {//越早结束的越优先,一样早结束的越晚开始的越优先if (m1.end == m2.end) {if (m1.beg > m2.beg) {return 1;}}else if (m1.end < m2.end) {return 1;}return 0;
}
int quickSort(meet a[], int l, int h) {//快速排序int i = l, j = h;meet p = a[l];while (i < j) {while (i<j&&cmp44(p,a[j])) {//从右往左遍历查找与p相比,满足会议的结束时间从小到大排序,会议开始时间从大到小j--;}if (i < j) {a[i++] = a[j];}while (i < j&&cmp44(a[i],p)) {//从左往右遍历查找与p相比,满足会议的结束时间从小到大排序,会议开始时间从大到小i++;}if (i < j) {a[j--] = a[i];}}a[i] = p;//分界的值,左边小于等于p,右边大于preturn  i;
}
void fenZhi(meet a[], int l, int h) {//分治if (l < h) {int mid = quickSort(a, l, h);//以mid为分界线,进行分治,然后递归下去排序fenZhi(a, l, mid - 1);fenZhi(a, mid + 1, h);}
}
void meetSelect(meet Meet[],int n) {int last = Meet[0].end;int ans = 0;//统计会议总数ans++;printf("选择的会议%d,开始时间为%d,结束时间为%d\n", Meet[0].num, Meet[0].beg, Meet[0].end);for (int i = 1; i < n; i++) {if (Meet[i].beg >= last) {ans++;last = Meet[i].end;printf("选择的会议%d,开始时间为%d,结束时间为%d\n",Meet[i].num,Meet[i].beg,Meet[i].end);}}printf("会议总数为%d\n",ans);
}
int main() {meet Meet[100];int n;printf("输入会议数:");scanf_s("%d", &n);for (int i = 0; i < n; i++) {scanf_s("%d%d", &Meet[i].beg, &Meet[i].end);Meet[i].num = i + 1;}fenZhi(Meet, 0, n - 1);printf("会议编号  会议开始时间  会议结束时间\n");for (int i = 0; i < n; i++) {printf("%d  %d  %d\n", Meet[i].num, Meet[i].beg, Meet[i].end);}meetSelect(Meet, n);printf("\n");system("pause");return 0;
}

测试截图:

请添加图片描述

时间复杂度O(nlogn),空间复杂度O(1)

如果存在什么问题,欢迎批评指正!谢谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/311627.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小cookie,大智慧

Cookie是什么&#xff1f;cookies是你访问网站时创建的数据片段文件&#xff0c;通过保存浏览信息&#xff0c;它们使你的在线体验更加轻松。使用cookies&#xff0c;可以使你保持在线登录状态&#xff0c;记录你的站点偏好&#xff0c;并为你提供本地化支持。First-party cook…

java 最少使用(lru)置换算法_LRU算法详解及最简单的Java实现

更多内容&#xff0c;欢迎关注微信公众号&#xff1a;全菜工程师小辉~LRU(Least recently used&#xff0c;最近最少使用)算法根据数据的历史访问记录来进行淘汰数据&#xff0c;其核心思想是“如果数据最近被访问过&#xff0c;那么将来被访问的几率也更高”。LRU算法的表现新…

word List 48

word List 48 如果存在什么问题&#xff0c;欢迎批评指正!谢谢&#xff01;

一文读懂常用开源许可证

社区时常为流行产品中有争议的开源许可证而感到震惊&#xff0c;这引起各方关注&#xff0c;纷纷争论何为真正的开源许可证。去年&#xff0c;Apache 基金会&#xff08;Apache Foundation&#xff09;禁止使用 Facebook React 那些具有争议的专利组件&#xff0c;这引发了轩然…

[蓝桥杯2015初赛]手链样式-思维+next_permutation枚举(好题)

题目描述 小明有3颗红珊瑚&#xff0c;4颗白珊瑚&#xff0c;5颗黄玛瑙。 他想用它们串成一圈作为手链&#xff0c;送给女朋友。 现在小明想知道&#xff1a;如果考虑手链可以随意转动或翻转&#xff0c;一共有多少不同的组合样式&#xff1f; 输出 请你输出该整数。不要输出任…

word List 49

word List 49 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢!

(四)开源C# WPF控件库《AduSkin – UI》

微信公众号&#xff1a;【Dotnet9的博客】&#xff0c;网站&#xff1a;【Dotnet9】&#xff0c;问题或建议&#xff1a;【请网站留言】&#xff0c; 如果对您有所帮助&#xff1a;【欢迎赞赏】。https://dotnet9.com追求极致&#xff0c;永臻完美A Beautiful WPF Control UI一…

python输入数据爬取_python根据用户需求输入想爬取的内容及页数爬取图片方法详解...

本次小编向大家介绍的是根据用户的需求输入想爬取的内容及页数。 主要步骤&#xff1a; 1.提示用户输入爬取的内容及页码。 2.根据用户输入&#xff0c;获取网址列表。 3.模拟浏览器向服务器发送请求&#xff0c;获取响应。 4.利用xpath方法找到图片的标签。 5.保存数据。 代码…

word List 50

word List 50 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢&#xff01;

单点突破,击穿阈值,DevOps转型你需要这样做

在上篇文章里&#xff0c;我提到了如何通过对价值流进行分析、拆解关键要素指标&#xff0c;并通过缩减处理时间PT、降低前置时间LT、提高完成&准确的百分比&#xff08;C&A%&#xff09;&#xff0c;实现企业研发效能10倍速提升。大家点击回看这篇文章《以埃隆马斯克“…

双向dcdc变换器simulink仿真_二极管箝位五电平变换器Simulin仿真

● 本期为二极管箝位五电平变换器的基本Simulink仿真&#xff0c;只包含其SPWM调制。感谢公众号一位好友“一叶知秋”提供Simulink模型并分享。01二极管箝位五电平变换器调制方法传统的变换器存在高的电压变化率和共模电压&#xff0c;且波形谐波含量较大&#xff0c;使得输出滤…

在.NET Core中使用MachineKey

在.NET Core中使用MachineKey在上篇文章中&#xff0c;我介绍了 Cookie是基于 MachineKey生成的&#xff0c; MachineKey决定了 Cookie生成的算法和密钥&#xff0c;并如果使用多台服务器做负载均衡时&#xff0c;必须指定一致的 MachineKey。但在 .NETCore中&#xff0c;官方似…

cg word List 1

cg word List 1 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢!

[蓝桥杯2016初赛]剪邮票-dfs+next_permutation(好题)

题目描述 如下图, 有12张连在一起的12生肖的邮票。现在你要从中剪下5张来&#xff0c;要求必须是连着的。&#xff08;仅仅连接一个角不算相连&#xff09; 比如&#xff0c;下面两张图中&#xff0c;粉红色所示部分就是合格的剪取。 请你计算&#xff0c;一共有多少种不同…

cg word List2

cg word List 2 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢&#xff01;

如何扩展分布式日志组件(Exceptionless)的日志通知?

作者&#xff1a;justmine头条号&#xff1a;大数据与云原生微信公众号&#xff1a;大数据与云原生创作不易&#xff0c;在满足创作共用版权协议的基础上可以转载&#xff0c;但请以超链接形式注明出处。为了方便阅读&#xff0c;微信公众号已按分类排版&#xff0c;后续的文章…

hadoop hive集群_基于伪分布式Hadoop搭建Hive平台详细教程

一、搭建环境的前提条件环境&#xff1a;Linux系统Hadoop-2.6.0MySQL 5.6apache-hive-2.3.7这里的环境不一定需要和我一样&#xff0c;基本版本差不多都ok的&#xff0c;所需安装包和压缩包自行下载即可。但是注意hive和hadoop都是2.x系列版本的。这里提供一个我下载的hive版本…

cg word List 3

cg word List 3 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢&#xff01;

.NET Core开发实战(第7课:用Autofac增强容器能力)--学习笔记(上)

07 | 用Autofac增强容器能力&#xff1a;引入面向切面编程&#xff08;AOP&#xff09;的能力这一节讲解使用第三方框架来扩展依赖注入容器什么情况下需要我们引入第三方容器组件&#xff1f;大部分情况下&#xff0c;默认的容器组件足够使用当需要一些非常特殊的场景如下&…

sql 对groupby 后的数据limit_SQL(三)——汇总分析

1. 汇总分析函数的3个功能&#xff1a;①功能&#xff1b;②输入&#xff08;参数&#xff09;&#xff1b;③输出&#xff08;返回值&#xff09;查询课程编号为“0002”的总成绩&#xff1a;查询选了课程的学生人数&#xff1a;2.分组sql分组:group bygroup by 实现数据分组&…