码迷,mamicode.com
首页 > 其他好文 > 详细

电梯调度

时间:2015-04-19 17:53:58      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:

一、题目要求

基础大楼一共有四部电梯,每层都有人上下,电梯在每层都停。信1201-1班的张一东觉得在每层都停觉得不耐烦。
由于楼层不太高,在上下课高峰期时时,电梯从一层上行,但只允许停在某一楼层。在一楼时,每个乘客选择自己的目的层,电梯则自动计算出应停的楼层。
问电梯停在那一楼层,能够保证这次乘坐电梯的所有乘客爬楼梯的层数之和最少。

二、设计思路

如果采用遍历的方法,这道题目还是比较容易实现的,这样它的时间复杂度就是N^2。

但是由于这是一个算法优化题所以这样设计:

N0是i-1楼人数,N1是i楼人数,N2是i+1楼人数

Y0是停在i-1楼所有人爬楼数,Y1是停在i楼所有人爬楼数,Y2是停在i+1楼所有人爬楼数,三者之间有这样的关系:

Y0=Y1-(N0-N1-N2);Y2=Y1-(N2-N0-N1)。

当N0>N1+N2时,Y0<Y1,再比较N0-N1-N2和N2-N0-N1的大小,若前者大则停在i-1层;

当N2>N0+N1时,Y0<Y1,再比较N0-N1-N2和N2-N0-N1的大小,若后者大则停在i+1层;

否则就停在第i层。

三、总结

采用合适的算法可以设计出更高效的程序,单单能实现要求不足以成为一个优秀的程序员,还需努力。

电梯调度

标签:

原文地址:http://www.cnblogs.com/zglsh/p/4439477.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!