这是《编程之美》上面的一道题,大体看过一点,早就忘了,昨天考试又遇到了,就想了下。下面的代码中第一个方法时间复杂度为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
分享到:
相关推荐
电梯调度问题是一个典型的运筹学应用,涉及到数学建模、优化算法和数据分析。在这个问题中,目标是通过改进电梯调度策略来减少乘客等待时间、提高电梯运行效率并降低能耗。 首先,模型评价指标的选择至关重要。文章...
电梯调度问题是一个重要的数学建模领域,特别是在现代城市中高层建筑日益增多的背景下。这个问题涉及到如何有效地管理和控制电梯运行,以最大化运输效率,减少乘客等待时间,并确保整体系统的稳定性。 在【标题】...
根据给出的信息,文档标题为“数学建模电梯调度问题19”,描述中重复了标题,但没有提供额外信息。内容中包含大量似乎是乱码的字符,以及部分可能来自C语言程序的代码片段和英文字符。由于内容部分的大部分字符是...
电梯调度问题是一个重要的数学建模应用,特别是在现代城市中高层建筑日益增多的背景下,有效解决电梯交通拥堵成为了关键。本文主要探讨了如何通过数学模型优化电梯的调度,以提高运输效率,减少乘客等待时间。 首先...
电梯调度问题是一个典型的运筹学问题,涉及到优化理论和算法设计。在这个问题中,目标是设计一个电梯调度算法,使得在上下班高峰期时,能够最大程度地提高乘客满意度,减少电梯的运行总长度,同时降低电梯的停留时间...
电梯调度模拟是一个典型的计算机科学问题,它涉及到算法设计、数据结构和C++编程技术。在这个项目中,我们可以通过实现一个C++程序来理解和优化电梯系统的运行效率。下面将详细阐述这个项目的相关知识点。 首先,...
电梯调度算法是计算机科学与工程领域中的一个重要概念,特别是在操作系统的多任务管理和自动化控制系统中。在本案例中,我们讨论的是一种用编程语言实现的电梯调度算法,它主要用于模拟实际电梯运行过程,帮助理解...
通过这个项目,你可以深入理解电梯调度问题,并学习到如何用编程方法解决实际问题。同时,也能提升你的VC++编程技巧和算法设计能力。无论是对学术研究还是实际工程应用,这都是一个有价值的学习资源。
电梯调度是计算机科学中的一种应用,它涉及到操作系统原理、算法设计和实时系统等多个领域。在这个项目中,我们看到“电梯调度C语言实现”是北京邮电大学的一个实践项目,使用C语言作为编程工具,实现了电梯的调度...
通过对A3C与其他强化学习算法的比较,如Q-learning或SARSA,A3C在调度性能上表现出更好的效果,证明了其在实际电梯调度问题中的应用潜力。 总结来说,该研究利用强化学习的A3C算法对电梯调度进行建模和优化,以提升...
对于电梯调度问题,其目标是使乘客等待时间最短、电梯运行效率最高,同时还要考虑电梯的负载平衡和能源消耗。 在实际应用中,电梯调度算法还需要考虑其他因素,如实时性、预测乘客需求、故障处理等。MATLAB提供了...
电梯调度算法是操作系统中一种重要的I/O调度策略,它的主要任务是优化磁盘读写操作的效率,提高系统的整体性能。在操作系统中,磁盘I/O操作通常比CPU计算耗时得多,因此如何有效地调度磁盘臂的移动,减少平均寻道...
这个文件很可能包含了电梯调度问题的具体描述,包括电梯系统的环境设定、乘客请求、以及预期的算法性能指标等。可能的内容包括:电梯的数量、楼层总数、乘客的上下楼需求、以及可能的时间窗口等。设计这样的题目有...
电梯调度算法是计算机科学中的一个重要概念,特别是在操作系统领域,它与进程管理有着密切的关系。电梯调度,也称为电梯算法,最初被引入来优化多层建筑中的电梯操作,但其核心思想同样适用于处理多个进程的CPU调度...
电梯调度算法是优化高层建筑内电梯运行效率的关键技术,它涉及到多门学科,如计算机科学、控制理论和人工智能。在给定的压缩包文件中,包含了一系列关于电梯调度算法的资料,涵盖了强化学习、LOOK调度、最短寻道、...
在本项目中,我们关注的是使用MATLAB实现遗传算法来解决电梯调度问题。MATLAB(Matrix Laboratory)是一种强大的编程环境,尤其适用于数值计算、符号计算以及数据分析。遗传算法(Genetic Algorithm, GA)是一种启发...
本算法着重于解决“无限人数”场景下的电梯调度问题,即假设电梯可以承载无限数量的乘客,而关注的重点是如何优化电梯的路径规划。 在设计电梯调度算法时,通常需要考虑以下几个关键因素: 1. **乘客请求**:乘客...
电梯调度程序是计算机科学中一个典型的实时系统设计问题,它涉及到多任务处理、优先级设置以及算法优化。在这个C++实现的电梯调度程序中,我们主要关注以下几个关键知识点: 1. **C++语言基础**:作为程序的基础,...
为了提高磁盘操作的效率,操作系统采用了一系列的调度算法,其中一种就是“模拟电梯调度算法”,也称作“扫描算法”或“FCFS(First-Come, First-Served)双向扫描算法”。本实验旨在通过模拟这个算法,深入理解磁盘...
【电梯调度问题概述】 电梯调度问题是一个典型的运筹学应用,尤其在高层办公楼中显得尤为重要。随着社会经济的发展,电梯已成为人们日常生活中不可或缺的一部分。在高峰期,如何有效地调度多台电梯,减少乘客等待...