多处最优服务次序问题——算法设计与分析(C实现)
问题描述:设有n个顾客同时等待一项服务。顾客i需要的服务时间为,共有s处可以提供此项服务。应该如何安排n个顾客的服务次序,才能使平均等待时间达到最小?平均等待时间是n个顾客的等待服务时间的总和除以n。
算法设计:对于给定的n个顾客需要的服务时间和s的值,计算最优服务次序。
数据输入:由文件input.txt给出输入数据。第1行有2个正整数n和s,表示有n个顾客且有s处可以提供服顾客需要的服务。接下来的1行中有n个正整数,表示n个顾客需要的服务时间。
结果输出:将计算的最小平均等到时间输出到文件output.txt。
基本思想:
- 该题是贪心算法的典型,只需要将所有的任务按照截至时间递增进行排序,然后将任务逐个分配给每一个服务器。即将等待的人逐个分配到每一个服务处。
- 重在于统计每一个任务等待时间,然后计算平均等待时间。
- 需要注意的是,这里的等待时间是相对于完成任务的时间点,等待时间包括完成任务所花费的时间和等待分配到的时间,即等待时间=执行时间+执行前等待分配的时间
具体代码实现如下:
#include<stdio.h>//选出当前等待时间最小的服务处
int SelectMin(int* wait,int s)
{int min = wait[0];int index = 0;for (int i = 0; i < s; i++) {if (min > wait[i]) {min = wait[i];index = i;}}return index;
}//安排顾客,计算平均等待时间
int Greedy(int* wait, int *arr, int n,int s)
{int sum = 0;int index;for (int i = 0; i < n; i++) {index = SelectMin(wait, s);wait[index] += arr[i];sum += wait[index];}return sum / n;
}//对顾客的执行时间进行从小到大的排序
void sort(int* arr,int n)
{int temp;for(int i=0;i<n;i++){for(int j=0;j<i;j++){if(arr[j]>arr[j+1]){temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}
}int main()
{int n,s,res;freopen("input.txt","r",stdin);freopen("output.txt","w",stdout);scanf("%d %d",&n,&s);//从文件中取出顾客人数和服务处数量 int wait[s];int arr[n];for(int i=0;i<n;i++){scanf("%d",&arr[i]);}sort(arr, n); res= Greedy(wait, arr, n, s);printf("%d",res);return 0;
}
现在让我们来检验一下代码的正确性:
(1)首先在程序所在路径下建立两个题目所需要的文本文件:input.txt output.txt
![]()
(2)在input.txt文件中输入相关数据:

(3)将代码运行起来,下图为代码运行成功的标志:

(4)那么接下来我们进入输出文件output.txt,查看代码运行的具体效果

经过检验发现,该代码实现的该实例时正确的,大家可以对其他实例进行一个验证,也可可以将代码自行更改,增加其可行性~
相关文章:
多处最优服务次序问题——算法设计与分析(C实现)
问题描述:设有n个顾客同时等待一项服务。顾客i需要的服务时间为,共有s处可以提供此项服务。应该如何安排n个顾客的服务次序,才能使平均等待时间达到最小?平均等待时间是n个顾客的等待服务时间的总和除以n。 算法设计:对…...
2023 年 IntelliJ IDEA 下载安装教程,超详细图文教程,亲测可用
. IDEA 下载 1、打开浏览器输入https://www.jetbrains.com/,进入 Jetbrains官网,点击 Developer Tools,再点击 Intellij IDEA 2、点击中间的 Download,进入IDEA下载界面 3、选择左边的 Ultimate 版本进行下载安装。Ultimate 版…...
前端框架比较:Vue.js、React、AngularJS三者的优缺点和应用场景
章节一:引言 在当前的互联网开发中,前端框架已经成为了不可或缺的一部分。然而,前端框架如此之多,该如何选择呢?Vue.js、React和AngularJS是目前比较受欢迎的三个前端框架,它们各自有着不同的优缺点和应用…...
JavaScript中的数据可视化和动画效果
摘要: JavaScript是一种强大而灵活的编程语言,被广泛用于网页开发和交互设计。在数据可视化和动画效果方面,JavaScript提供了丰富的工具和库,使开发者能够创建出令人印象深刻的交互式数据可视化和动画效果。本文将介绍JavaScript中…...
如何搭建在线产品手册
在现代社会,随着科技的发展,越来越多的企业将目光投向互联网,并将自己的产品推向了线上。而对于这些线上产品,拥有一份完备的、易用、高质量的在线产品手册显得尤为重要。 那么如何才能搭建一份高质量且易用的在线产品手册呢&…...
Java版企业电子采购招标系统源码
一、立项管理 1、招标立项申请 功能点:招标类项目立项申请入口,用户可以保存为草稿,提交。 2、非招标立项申请 功能点:非招标立项申请入口、用户可以保存为草稿、提交。 3、采购立项列表 功能点:对草稿进行编辑&#x…...
【操作系统复习】第6章 虚拟存储器 2
请求分页中的内存分配 在为进程分配物理块时,要解决下列的三个问题: 1. 保证进程可正常运行所需要的最少物理块数 2. 每个进程的物理块数,是固定值还是可变值(分配策略) 3. 不同进程所分配的物理块数ÿ…...
【OAI】OAI5G核心网VPP-UPF网元分析
文章目录 VPP_UPF_CONFIG_GENERATION.mdVPP UPF Configuration GenerationEnvironment variablesInterfacesInterface Configuration ExamplesCentral UPFA-UPFI-UPFUL CL FEATURE_SET.mdVPP_UPG_CLI参考文献 VPP_UPF_CONFIG_GENERATION.md VPP UPF Configuration Generation …...
【上进小菜猪】使用Ambari提高Hadoop集群管理和开发效率:提高大数据应用部署和管理效率的利器
📬📬我是上进小菜猪,沈工大软件工程专业,爱好敲代码,持续输出干货,欢迎关注。 介绍 Hadoop是一种开源的分布式处理框架,用于在一组低成本硬件的集群上存储和处理大规模数据集。Ambari是一种基…...
Day3--C高级3
一.编写一个名为myfirstshell.sh的脚本,它包括以下内容。 1、包含一段注释,列出您的姓名、脚本的名称和编写这个脚本的目的 2、和当前用户说“hello 用户名” 3、显示您的机器名 hostname 4、显示上一级目录中的所有文件的列表 5、显示变量PATH和HO…...
第9章 CURD操作与MemoryCache缓存的强制清理的实现
1 重构 Data.Repository<TEntity> using Core.Caching; using Core.Domain; using Core.Events; using Microsoft.EntityFrameworkCore; namespace Data { ///<typeparam name"TEntity">泛型类型实例(这里特指:1个指定实体的类型实例)。</typepa…...
TCP 协议特性详解
TCP 协议特性总结 TCP协议特点TCP协议段格式TCP原理确认应答(安全机制)超时重传(安全机制)连接管理(安全机制)(面试高频题)三次握手四次挥手 滑动窗口(效率机制)流量控制(…...
电子招投标采购系统源码:采购过程更规范,更透明
满足采购业务全程数字化, 实现供应商管理、采购需求、全网寻源、全网比价、电子招 投标、合同订单执行的全过程管理。 电子招标采购,是指在网上寻源和采购产品和服务的过程。对于企业和企业主来说,这是个既省钱又能提高供应链效率的有效方法…...
一篇了解智慧网关
智慧网关是指基于互联网技术的智能网关,能够连接不同的物联网设备和传感器,实现数据采集、信息传递、远程控制、通信管理等功能。作为物联网架构中的核心设备之一,智慧网关在智能家居、智慧城市、智能制造、智能交通、智能农业等领域得到了广…...
自学软件测试,从10K到40K的技术路线,也就是这些东西...
如果有一天我从梦中醒来时,发现自己的几年自动化测试工程师经验被抹掉,重新回到了一个小白的状态。我想要重新自学自动化测试,然后找到一份自己满意的测试工作,我想大概只需要6个月的时间就够了,如果比较顺利的话&…...
Qt libqrencode二维码——QtWidgets
前言 之前写过二维码的程序,但是在U盘上,没带,又重新找的网上资料写的。 网上二维码的生成,大多用到是第三方库libqrencode,这也一样: 效果图 本来是个动图的,都被和谐了,所以换成截图&…...
KDZD绝缘子表面电导盐密度测试仪
一、简介 智能电导盐密测试仪,也称为直读式等值盐密度测试仪,专为测试智能电导盐密度而设计。系统内置智能电导盐密度计算公式,读数直观。 人机交互采用真彩TFT液晶屏,操作简单,测试参数和结果一目了然。仪器自带微型打…...
如何降低电动汽车软件的开发成本和风险?
大多数的汽车制造商无法从销售电动汽车(EV)中获得利润,但计划快速进入市场的电动汽车初创公司是无法承担这样的损失的。 由于飙升的电池价格、高昂的组件成本和低迷的销量削弱了盈利能力,电动汽车初创公司必须将视线转到软件开发…...
使用pytest和allure框架实现自动化测试报告优化
目录 -x出现一条测试用例失败就退出测试 生成测试报告json pytest: 需要安装pytest和pytest-html(生成html测试报告) pip install pytest 和 pip install pytest-html 命名规则 Pytest单元测试中的类名和方法名必须是以test开头,执行中只能找到test开头…...
chatGPT免费站点分享
下面的应该都能用,试试吧... ChatGPT是一种人工智能聊天机器人,能够生成虚拟语言和交互回复。使用ChatGPT,您可以与机器人进行真实的交互,让机器人根据您提出的问题或请求来生成回复。但是,在使用ChatGPT时࿰…...
拯救你的Flash回忆:CefFlashBrowser让经典内容重获新生
拯救你的Flash回忆:CefFlashBrowser让经典内容重获新生 【免费下载链接】CefFlashBrowser Flash浏览器 / Flash Browser 项目地址: https://gitcode.com/gh_mirrors/ce/CefFlashBrowser 你是否曾经因为现代浏览器不再支持Flash而无法重温那些经典的教学课件&…...
推理神器Phi-4-mini-reasoning实测:解方程、逻辑题一键生成答案
推理神器Phi-4-mini-reasoning实测:解方程、逻辑题一键生成答案 1. 模型介绍与核心能力 Phi-4-mini-reasoning是一款专注于逻辑推理和数学计算的轻量级AI模型。与通用聊天模型不同,它被专门设计用于处理需要分步推理的任务,能够将复杂的解题…...
IEEE会议论文避雷指南:如何用GSview+Photoshop搞定EPS图片压缩与特殊字符命名
IEEE会议论文图片处理全攻略:从格式转换到命名规范 第一次投稿IEEE会议的新手研究者们,往往会在图片处理环节栽跟头——明明内容扎实、实验充分,却因为技术细节问题被编辑退回修改。这不是学术能力的问题,而是对印刷出版标准的不熟…...
STM32定时器时基单元详解:从PSC到ARR的完整配置指南(附代码)
STM32定时器时基单元实战指南:从寄存器配置到精准延时实现 在嵌入式开发中,定时器是最基础也最核心的外设之一。无论是简单的LED闪烁控制,还是复杂的电机PWM驱动,都离不开定时器的精准计时功能。对于STM32开发者来说,掌…...
用.NET 6+和secs4net快速搭建半导体设备通信主机(附完整代码示例)
基于.NET 6与secs4net构建半导体设备通信主机的实战指南 在半导体制造领域,设备间的高效通信是自动化生产线的核心需求。SECS/GEM协议作为行业标准,为设备与主机系统间的数据交换提供了可靠框架。本文将展示如何利用.NET 6平台和secs4net库快速搭建功能完…...
Wan2.2-I2V-A14B镜像效果展示:夕阳海滩10秒1080P高清视频生成作品集
Wan2.2-I2V-A14B镜像效果展示:夕阳海滩10秒1080P高清视频生成作品集 1. 惊艳的视频生成效果 想象一下,只需简单描述,就能让电脑自动生成一段夕阳下的海滩视频。Wan2.2-I2V-A14B镜像让这个想象成为现实,它能将文字描述转化为高清…...
别再乱接纽扣电池了!STM32 VBAT引脚的正确外围电路设计(附5种常见错误分析)
STM32 VBAT电路设计避坑指南:从原理到实践的5个关键错误解析 在STM32硬件设计中,VBAT引脚的处理看似简单,却暗藏玄机。许多工程师在第一次接触这个为RTC和备份寄存器供电的引脚时,往往会陷入"接个电池就能用"的误区。事…...
OpCore-Simplify:重新定义黑苹果配置的智能自动化体验
OpCore-Simplify:重新定义黑苹果配置的智能自动化体验 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 你是否曾经想过,黑苹果配…...
PCIe 4.0 vs 内存总线:为什么你的NVMe SSD速度上不去?
PCIe 4.0与内存总线带宽博弈:揭开NVMe SSD性能瓶颈的真相 当你花大价钱购入一块标称读取速度7000MB/s的高端NVMe SSD,实际测试却发现速度只有标称值的一半时,这种落差感就像买了跑车却只能在市区堵车。问题往往不在SSD本身,而是隐…...
从原理到实战:AEC如何成为现代通信的“静音守护者”
1. 回声:从自然现象到通信难题 想象一下,你正在和远方的朋友视频通话,突然听到自己的声音像山谷回音一样不断重复。这种恼人的现象就是我们常说的"声学回声"。在自然界中,回声是声音遇到障碍物反射形成的物理现象&#…...
