`

电梯调度问题

阅读更多

这是《编程之美》上面的一道题,大体看过一点,早就忘了,昨天考试又遇到了,就想了下。下面的代码中第一个方法时间复杂度为O(n*n),第二个方法为O(n)。

 

public class FloorNum 
{
	public static void main(String[] args)
	{
		int[] arr = {3, 2, 7, 5, 9, 4, 6};
		
		calculate(arr);
		
		calculator2(arr);
	}
	
	private static void calculate(int[] arr)
	{
		int sum = 0;
		int min = Integer.MAX_VALUE;
		int k = 0;
		int floor  = 0;
		
		for(int i=0; i<arr.length; i++)
		{
			sum = 0;
			for(int j=0; j<arr.length; j++)
			{
				k = Math.abs(j-i);
				sum += k * arr[j];
			}
			
			if(sum < min)
			{
				min = sum;
				floor  = i;
			}
		}
		
		System.out.println(floor + " " + min);
	}
	
	private static void calculator2(int[] arr)
	{
		int sum = 0;
		int temp = 0;
		int floor = 0;
		
		for(int i=0; i<arr.length; i++)
		{
			sum += arr[i];
		}
		
		for(int i=0; i<arr.length; i++)
		{
			temp += arr[i];

			if(temp*2 > sum)
			{
				floor = i;
				break;
			}
		}
		
		System.out.println(floor);
	}
}

 

输出为:

 

4 53
4

 

6
0
分享到:
评论

相关推荐

    数学建模电梯的调度问题

    电梯调度问题是一个典型的运筹学应用,涉及到数学建模、优化算法和数据分析。在这个问题中,目标是通过改进电梯调度策略来减少乘客等待时间、提高电梯运行效率并降低能耗。 首先,模型评价指标的选择至关重要。文章...

    数学建模 电梯调度问题

    电梯调度问题是一个重要的数学建模领域,特别是在现代城市中高层建筑日益增多的背景下。这个问题涉及到如何有效地管理和控制电梯运行,以最大化运输效率,减少乘客等待时间,并确保整体系统的稳定性。 在【标题】...

    数学建模电梯调度问题19.pdf

    根据给出的信息,文档标题为“数学建模电梯调度问题19”,描述中重复了标题,但没有提供额外信息。内容中包含大量似乎是乱码的字符,以及部分可能来自C语言程序的代码片段和英文字符。由于内容部分的大部分字符是...

    数学建模电梯调度问题.doc

    电梯调度问题是一个重要的数学建模应用,特别是在现代城市中高层建筑日益增多的背景下,有效解决电梯交通拥堵成为了关键。本文主要探讨了如何通过数学模型优化电梯的调度,以提高运输效率,减少乘客等待时间。 首先...

    数学建模 电梯调度问题19.doc

    电梯调度问题是一个典型的运筹学问题,涉及到优化理论和算法设计。在这个问题中,目标是设计一个电梯调度算法,使得在上下班高峰期时,能够最大程度地提高乘客满意度,减少电梯的运行总长度,同时降低电梯的停留时间...

    c++实现电梯调度模拟

    电梯调度模拟是一个典型的计算机科学问题,它涉及到算法设计、数据结构和C++编程技术。在这个项目中,我们可以通过实现一个C++程序来理解和优化电梯系统的运行效率。下面将详细阐述这个项目的相关知识点。 首先,...

    电梯调度算法(源代码)

    电梯调度算法是计算机科学与工程领域中的一个重要概念,特别是在操作系统的多任务管理和自动化控制系统中。在本案例中,我们讨论的是一种用编程语言实现的电梯调度算法,它主要用于模拟实际电梯运行过程,帮助理解...

    经典电梯调度算法的简易实现

    通过这个项目,你可以深入理解电梯调度问题,并学习到如何用编程方法解决实际问题。同时,也能提升你的VC++编程技巧和算法设计能力。无论是对学术研究还是实际工程应用,这都是一个有价值的学习资源。

    电梯调度C语言实现

    电梯调度是计算机科学中的一种应用,它涉及到操作系统原理、算法设计和实时系统等多个领域。在这个项目中,我们看到“电梯调度C语言实现”是北京邮电大学的一个实践项目,使用C语言作为编程工具,实现了电梯的调度...

    强化学习A3C算法在电梯调度中的建模及应用_刘宇1

    通过对A3C与其他强化学习算法的比较,如Q-learning或SARSA,A3C在调度性能上表现出更好的效果,证明了其在实际电梯调度问题中的应用潜力。 总结来说,该研究利用强化学习的A3C算法对电梯调度进行建模和优化,以提升...

    my11.rar_电梯matlab_电梯分配_电梯群调度_遗传算法分配

    对于电梯调度问题,其目标是使乘客等待时间最短、电梯运行效率最高,同时还要考虑电梯的负载平衡和能源消耗。 在实际应用中,电梯调度算法还需要考虑其他因素,如实时性、预测乘客需求、故障处理等。MATLAB提供了...

    电梯调度算法实现

    电梯调度算法是操作系统中一种重要的I/O调度策略,它的主要任务是优化磁盘读写操作的效率,提高系统的整体性能。在操作系统中,磁盘I/O操作通常比CPU计算耗时得多,因此如何有效地调度磁盘臂的移动,减少平均寻道...

    为简化的电梯调度算法设计测试用例.rar

    这个文件很可能包含了电梯调度问题的具体描述,包括电梯系统的环境设定、乘客请求、以及预期的算法性能指标等。可能的内容包括:电梯的数量、楼层总数、乘客的上下楼需求、以及可能的时间窗口等。设计这样的题目有...

    电梯调度算法(java实现)

    电梯调度算法是计算机科学中的一个重要概念,特别是在操作系统领域,它与进程管理有着密切的关系。电梯调度,也称为电梯算法,最初被引入来优化多层建筑中的电梯操作,但其核心思想同样适用于处理多个进程的CPU调度...

    电梯调度算法(算法合集)

    电梯调度算法是优化高层建筑内电梯运行效率的关键技术,它涉及到多门学科,如计算机科学、控制理论和人工智能。在给定的压缩包文件中,包含了一系列关于电梯调度算法的资料,涵盖了强化学习、LOOK调度、最短寻道、...

    dianti.rar_dianti_电梯_电梯matlab_电梯调度_调度matlab算法

    在本项目中,我们关注的是使用MATLAB实现遗传算法来解决电梯调度问题。MATLAB(Matrix Laboratory)是一种强大的编程环境,尤其适用于数值计算、符号计算以及数据分析。遗传算法(Genetic Algorithm, GA)是一种启发...

    无限人数单个电梯调度算法

    本算法着重于解决“无限人数”场景下的电梯调度问题,即假设电梯可以承载无限数量的乘客,而关注的重点是如何优化电梯的路径规划。 在设计电梯调度算法时,通常需要考虑以下几个关键因素: 1. **乘客请求**:乘客...

    c++ 写的电梯调度程序

    电梯调度程序是计算机科学中一个典型的实时系统设计问题,它涉及到多任务处理、优先级设置以及算法优化。在这个C++实现的电梯调度程序中,我们主要关注以下几个关键知识点: 1. **C++语言基础**:作为程序的基础,...

    模拟电梯调度算法,实现对磁盘的驱动调度

    为了提高磁盘操作的效率,操作系统采用了一系列的调度算法,其中一种就是“模拟电梯调度算法”,也称作“扫描算法”或“FCFS(First-Come, First-Served)双向扫描算法”。本实验旨在通过模拟这个算法,深入理解磁盘...

    数学建模电梯的调度问题.doc

    【电梯调度问题概述】 电梯调度问题是一个典型的运筹学应用,尤其在高层办公楼中显得尤为重要。随着社会经济的发展,电梯已成为人们日常生活中不可或缺的一部分。在高峰期,如何有效地调度多台电梯,减少乘客等待...

Global site tag (gtag.js) - Google Analytics