n个顾客等待时间最短(贪心算法)

2023-11-12

设有n个顾客同时等待一个服务。顾客i需要的服务时间为ti(1<=i<=n)。共有s处可以提供此服务。应如何安排n个顾客的服务才能使平均等待时间达到最短?平均的带时间时n个顾客等待服务时间的总和除以n。

方法:先按从大到小排序,然后再挨个排队。

package 实验四;
import java.util.Arrays;
public class 等待时间最短 {
	public static void main(String[] args) {
		C c=new C();
		c.run();
	}
}
class C{
	int [] t= {2,5,3,3,1,4,4,5}; //顾客的等待时间
	int n=t.length;  //顾客人数
	int s=3;  //服务的点数
	int [][] shunxu=new int[s][n/3+1];
	void run() {
		int i,j;
		Arrays.sort(t);
		System.out.print("顾客的等待时间为:");
		for(i=0;i<n;i++) {
			System.out.print(t[i]+" ");
		}
		System.out.println();
		int ss=0;
		int count=0;
		for(i=0;i<n;i++) {
			shunxu[i%3][ss]=t[i];
			count++;
			if(count>2) {
				ss++;
				count=0;
			}
		}
		for(i=0;i<s;i++) {
			System.out.print("第"+i+"个点的服务顺序为:");
			for(j=0;j<n/3+1;j++) {
				if(shunxu[i][j]!=0)
					System.out.print(shunxu[i][j]+" ");
			}
			System.out.println();
		}
		float [][] time=new float[s][10];  //等待时间表
		for(i=0;i<s;i++) {
			for(j=1;j<n/3+1;j++) {
				if(shunxu[i][j]!=0) {
					if(j==1)
						time[i][j]=shunxu[i][j-1];
					else {
						time[i][j]=shunxu[i][j-1]+time[i][j-1];
					}
				}
			}
		}
		System.out.println("等待时间表为:");
		for(i=0;i<s;i++) {
			for(j=0;j<n/3+1;j++) {
				System.out.print(time[i][j]+" ");
			}
			System.out.println();
		}
		float time_all=0;      //总的等待时间
		for(i=0;i<s;i++) {
			for(j=0;j<n/3+1;j++) {
				time_all+=time[i][j];
			}
		}
		System.out.println("总的时间为:"+time_all);
		float time_avg=time_all/n;
		System.out.println("等待的平均时间为:"+time_avg);
	}
}

顾客的等待时间为:1 2 3 3 4 4 5 5 
第0个点的服务顺序为:1 3 5 
第1个点的服务顺序为:2 4 5 
第2个点的服务顺序为:3 4 
等待时间表为:
0.0 1.0 4.0 
0.0 2.0 6.0 
0.0 3.0 0.0 
总的时间为:16.0
等待的平均时间为:2.0

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

n个顾客等待时间最短(贪心算法) 的相关文章

  • 关于Flink Time中的Watermaker案例的详解

    需求 自定义数据源 产出交易订单数据 设置基于事件时间窗口统计 1 交易订单数据 import lombok AllArgsConstructor import lombok Data import lombok NoArgsConstru
  • 三个审稿人,两个同意,一个不同意,最后被录用希望大吗?

    链接 https www zhihu com question 340821507 编辑 深度学习与计算机视觉 声明 仅做学术分享 侵删 作者 知乎用户 https www zhihu com question 340821507 answ
  • 【转】C++类中对同类对象private成员访问

    私有成员变量的概念 在脑海中的现象是 以private关键字声明 是类的实现部分 不对外公开 不能在对象外部访问对象的私有成员变量 然而 在实现拷贝构造函数和赋值符函数时 在函数里利用对象直接访问了私有成员变量 因而 产生了困惑 下面以具体
  • 基于Matlab实现图像配准技术(附上源码+图像)

    图像配准是数字图像处理中的重要技术之一 它的目标是将多幅图像进行准确的对齐 使得它们在空间上保持一致 图像配准在许多领域都有广泛的应用 如医学影像 遥感图像 计算机视觉等 本文将介绍如何使用Matlab实现图像配准技术 并提供一个简单的案例
  • linux文件内容操作命令,linux 操作系统中cat查看文件内容命令的使用

    cat命令的用途是连接文件或标准输入并打印 这个命令常用来显示文件内容 或者将几个文件连接起来显示 或者从标准输入读取内容并显示 它常与重定向符号配合使用 1 命令格式 cat 选项 文件 2 命令功能 cat主要有三大功能 1 一次显示整
  • 华为安防产品VCN资料下载

    首先登录网站 华为入口 下载后安装 win10 然后就能看到客户端 注册登录 点击资料领航 进入网页 然后就可以下载了
  • 您的计算机已被Malloxx勒索病毒感染?恢复您的数据的方法在这里!

    导言 在数字时代 malloxx勒索病毒已经成为一个可怕的威胁 给个人 企业和组织带来了无法估量的损失 本文91数据恢复将深入探讨 malloxx勒索病毒的运作方式 并提供一些独特的方法来恢复被它加密的数据文件 以及如何在被其困扰之前采取
  • Linux高性能服务器编程|阅读笔记:第5章 - Linux网络编程基础API

    目录 简介 5 1 socket地址API 5 1 1 主机字节序和网络字节序 5 1 2 通用socket地址 5 1 3 专用socket地址 5 1 4 IP地址转换函数 5 2 创建socket 5 3 命名socket 5 4 监
  • 面试题目收集(1)

    本博客的 面试题目搜集系列不错 1 面试题目搜集1 2 面试题目搜集2 3 面试题目搜集3 4 面试题目搜集4 5 面试题目搜集5 6 面试题目搜集6 1 字符串取除多余的空格 包括行首的空格 单词与单词之间只能有多余的空格 结尾不能有空格
  • pytorch简单的逻辑回归

    import torch import torch nn as nn import torchvision import torchvision transforms as transforms Hyper parameters input
  • vue与ios、Android交互问题总结

    1 ios与vue交互可以显示iframe的页面内容 但是不能与iframe交互 Android可以 2 ios可以直接调用html页面 但是url传参只能是问号传参 不可用json对象 Android可以 3 Android对js语法要求
  • Spark高手之路3—Spark运行架构

    文章目录 Spark 运行架构 一 运行架构 二 核心组件 Driver Executor Master Worker ApplicationMaster 三 核心概念 1 Executor 与 Core 2 并行度 Parallelism
  • 【学习笔记向】零基础小白快速制作最简陋MMD(VRoid + Unity)

    特别鸣谢B站UP主十七时的大力支援 学生时期总会有一两个没有安排的周末 不如我们来嗑CP 学习 做MMD吧 第一天 下载软件和素材 熟悉Unity 下载软件可能需要很久 请耐心 一 软件 1 VRoid Studio 用于零基础建模 B站上
  • java必知必会_Java必知必会-Spring Security

    一 Spring Security介绍 1 框架介绍 Spring 是一个非常流行和成功的 Java 应用开发框架 Spring Security 基于 Spring 框架 提供了一套 Web 应用安全性的完整解决方案 一般来说 Web 应
  • 基于DFA方法的健康人与癫痫病人EEG数据分析附代码

    引言 DFA分析方法是由C K提出的一种研究时间序列波动长时相关性的方法 主要用来区别复杂系统本身产生的波动和由外界及环境刺激作用在系统上产生的波动 外部刺激产生的变化假设引起了局部效应 而系统本身内部的动力学产生的变化假设展示了长时的相关
  • 浅拷贝和深拷贝: copy模块的copy()和deepcopy()函数(*^▽^*)

    我们在平时处理列表和字典的时候 有时候希望创建一个列表或者字典的副本拿出来使用 但是同时我们也不希望列表 字典 和其列表 字典 副本还保留着某种联系的时候 比如说我们在修改列表的时候副本也跟着同步被修改了 这是我们最不想看到的情况 这种情况
  • 树莓派教程 - 1.2 树莓派GPIO库wiringPi 软件PWM

    Git例程源码仓库 https github com ZhiliangMa raspberry git 使用到的硬件 led 200 左右的电阻 杜邦线 上一节使用硬件PWM来控制led亮度 可树莓派的硬件PWM引脚只有1路 在实际应用中
  • php生成密码及密码检验

    1 生成密码 password hash test password PASSWORD DEFAULT 2 密码检验 hash 2y 10 ckeTXO nnKfWTDDYRSwGWu0xste 55Cp0RIpolBldDOXZ61ecZ
  • vscode同时编辑多处文字 批量替换编辑内容

    先按Ctrl F打开搜索框 然后搜索要编辑的内容 接着按Ctrl Shift L就可以选中对应的所有内容了 然后可以全部编辑和替换了 按了Ctrl shift L之后把搜索框关闭就可以同时编辑多处了 此处我就是搜索items
  • NLP 中 Bilstm-attentio的使用

    NLP 中 Bilstm attentio的使用 bilstm attention 理解 bilstm attention的作用 bilstm attention 编码实现 bilstm attention 理解 bilstm attent

随机推荐

  • java中的运算符

    java中常见的运算符 1 public static void q1 int a 5 0000 0101 int b 3 0000 0011 a b 0000 00111 二进制两个都为0的时候 结果是0 否则是1 System out
  • qt中lable中更改字体字号加粗等

    以下内容摘抄博客 https blog csdn net superbfly article details 53199731 utm medium distribute pc relevant none task blog BlogCom
  • 音频驱动篇之pop音攻略

    接触音频驱动工作也有2年的时间了 这这段时间里深刻感受了手机行业的更新换代是MB的迅速 2年的时间里 从TI到QUALCOMM 从android2 1到4 2 从单核到四核 经我参与的项目就有20款 日子是相当的难过 今天回头来说一些我在研
  • CentOS 使用nc命令进行端口扫描

    目录 CentOS 6 中nc命令的使用 CentOS 7 中nc命令的使用 使用nc命令可以探测目标主机的端口 但是在Centos 6 和 CentOS 7中这个命令的使用有所不同 甚至可以说功能已经不同 下面分别是CentOS 6 和
  • gitee密码修改后,pycharm权限不够提醒(windows10)

    问题 gitee密码修改后 pycharm更新代权限不够提醒 windows10 解决办法 gitee密码修改后 要在windows中同时进行修改 步骤如下 具体如图 控制面板 gt 所有控制面板项 gt 凭据管理器 gt Windows凭
  • vue 学习相关笔记大全

    与三阶段无关 框架是什么 封装与业务 功能 无关的代码块 简化了我们对于某些功能的代码量 但是我们需要记一套当前框架的语法 淘宝镜像 npm的服务器在国外 咱们国内下载的时候很慢 淘宝就自建了一个服务器 每个10分钟 就把npm的服务器里面
  • 这是一份面向3年以上Android开发者的中高级面试宝典,拔剑金九银十,大厂直通车

    前言 这是 拔剑金九银十 的第二篇文章 本文主要针对3年以上的Android开发者进阶面试中高级开发工程师而整理 三年以下小伙伴请移步 这是一份面向0 3年Android开发者的面试宝典 2020一线互联网大厂面试真题系统收录 希望可以对你
  • Arthur系统性详解微服务-完善中

    第一篇 微服务的意义 1 常见架构对比 第二篇 微服务的构建 1 微服务建模关注点及方法论 1 1 服务分类 1 2 服务模型 1 3 服务边界 1 4 服务数据 2 服务拆分和集成 2 1 服务拆分及方法论 2 1 1 服务拆分的维度 策
  • 配置环境说明

    工具及环境介绍 Eclipse 是一个开放源代码的 基于Java的可扩展开发平台 就其本身而言 它只是一个框架和一组服务 用于通过插件组件构建开发环境 Tomcat是一个应用服务器 他可以运行按照J2EE中的Servlet规范编写好的Jav
  • mysql数据库常用命令

    1 显示当前数据库服务器中的数据库列表 mysql gt show databases 2 创建数据库 mysql gt create database item character set utf8mb4 3 创建用户 mysql gt
  • unity3d 摄像机跟随角色时被物体遮挡解决方案

    unity3d 摄像机跟随角色时被物体遮挡解决方案 未被遮挡时 为了解决这个问题 在这里我们需要用到 Physics RaycastAll 使用方法详见圣典 首先 我们引入命名空间 System Collections Generic 然后
  • 电压电流双环控制PI参数计算01

    1 截止频率 将内环看作一个采样环节 对外环给定信号进行采样 同理驱动电路对内环给定信号进行采样 为保持环路稳定 外环截止频率 lt 内环截止频率 lt 开关频率 通常内环截止频率一般设置为开关频率的1 10 外环截止频率一般设置为开关频率
  • 内部排序算法比较(超详解)

    一 题目描述 通过随机数据比较各排序算法的关键字比较次数和关键字移动次数 以 及执行时间 取得直观感受 二 设计要求 一 需求分析 实现各排序算法 分别进行以下各组比较 并进行总结 一 各算法在不同规模下的比较 1 比较范围 直接插入排序
  • 辗转相除法求最大公约数 C/C++

    文章目录 辗转相除法的概念 用递归实现 用循环实现 辗转相除法的概念 辗转相除法是用来求两个正整数最大公约数的算法 古希腊数学家欧几里得在其著作 The Elements 中最早描述了这种算法 所以又被命名为欧几里得算法 扩展欧几里得算法可
  • 什么是Portlet ?

    什么是Portlet 作者 Sunil Patil 译者 observer 版权声明 任何获得Matrix授权的网站 转载时请务必以超链接形式标明文章原始出处和作者信息及本声明 作者 Sunil Patil observer 原文地址 ht
  • springboot 之yaml配置文件注入

    配置文件 spring boot使用一个全局配置文件 配置文件的名称是固定的 application properties 和application yml文件 默认是 properties文件 配置文件的作用 修改spring boot自
  • MVC中Ajax的简单实现(多种传值方法)

    这几天在练习下MVC中Ajax中视图与控制器之间传值问题 时不时有些写法错误 导致传值失败 特把成功传值实现方法写下 Index cshtml视图
  • Python代码~加油

    import turtle as t import time 由于会重复用到多次以下操作 故写成函数 def hua a b c d t goto a b t down t goto c d t up def heng a b c hua
  • Unhandled exception:java.text.ParseException

    最近遇到一个这样的错 在我敲完这两句话后 下面自动跳红线了那么这是怎么回事呢 解决办法 在方法声明后加 throws Exception 为什么要这么写 throws 的作用是不在本方法中进程异常处理 而是抛给调用此方法的类中进行处理 解释
  • n个顾客等待时间最短(贪心算法)

    设有n个顾客同时等待一个服务 顾客i需要的服务时间为ti 1 lt i lt n 共有s处可以提供此服务 应如何安排n个顾客的服务才能使平均等待时间达到最短 平均的带时间时n个顾客等待服务时间的总和除以n 方法 先按从大到小排序 然后再挨个