编程之美1.8小飞的电梯调度算法扩展问题
来源:互联网 发布:苹果cms模板怎么安装 编辑:程序博客网 时间:2024/05/22 11:36
设有N2个乘客在第i层下,N1个乘客的目的地楼层在第i层以下,N3个乘客的楼层在第i层以上
假设电梯从停在i层改停在为i+1层,停在第i层时消耗的总能量为E
则改为i+1层停之后原先i层以上的乘客即N3个乘客少往上爬一层,原先第i层的N2个乘客需多往下爬一层,原先第i层以下的N1个乘客需多往下爬一层。
所需总能量变为E-N3*K+N1+N2
若N3*K>(N1+N2),则停在i+1层好
若停第i层比停i+1层能量消耗低,会出现停第i层比停第i+2层能量消耗多的情况么
已知 N3*K<(N1+N2)
从i层到i+2层
消耗的能量变为E+2(N1+N2)+nPersons[i+1]-k(N3-nPersons[i+1])>E
因此循环只要有一次停第i层比停i+1层能量消耗低,后面变无需再比较
//nPerson[i]表示到第i层的乘客数目//N1代表目标楼层在第i层以下的乘客数//N2代表目标楼层第i层的乘客数//N3代表目标楼层在第i层以上的乘客数void (int *nPerson,int k){int nMinEnergy=0;int nTargetFloor=1;int N1,N2,N3;int i;for(N1=0,N2=nPerson[1],N3=0,i=2;i<N;i++){N3+=nPerson[i];nMinEnergy+=nPerson[i]*(i-1)*k;}for(i=2;i<N;i++){if(N3*k>(N1+N2)){nTargetFloor=i;nMinEnergy=nMinEnergy-N3*K+N1+N2;N1=N1+nPerson[i-1];N3-=nPerson[i];N2=nPerson[i];}elsebreak;}}
- 编程之美1.8小飞的电梯调度算法扩展问题
- 编程之美 1.8 小飞的电梯调度算法
- 编程之美1.8:小飞的电梯调度算法
- 编程之美---小飞的电梯调度问题 1.8 扩展2
- 《编程之美》小飞的电梯调度算法
- 编程之美_006小飞的电梯调度算法
- 编程之美:小飞的电梯调度算法
- 小飞的电梯调度算法@编程之美
- 小飞的电梯调度算法(编程之美)
- 编程之美----小飞的电梯调度算法
- 《编程之美》小飞的电梯调度算法
- 编程之美:小飞的电梯调度算法
- 编程之美--小飞的电梯调度算法
- 编程之美--1.8--小飞的电梯调度问题--扩展问题--2--(M层电梯选择K层停靠)
- 小飞的电梯调度算法,光影切割问题<<编程之美>>
- 读书笔记之编程之美 - 1.8 小飞的电梯调度算法
- 编程之美 1.8小飞的电梯调度算法的第三种解
- 《编程之美》读书笔记之[小飞电梯调度算法]
- poj 2386 Lake Counting
- 数据库文字信息asp网页显示
- Linux共享远程目录
- s3c2440的LCD应用
- Android Surface 屏幕截图
- 编程之美1.8小飞的电梯调度算法扩展问题
- 查看端口号并关闭占用端口号的进程
- 编程让任务管理器中CPU占有率呈现正弦曲线
- Windows Sockets:操作顺序
- ubuntu环境下的C++开发工具汇总
- wait_event_interruptible() 和 wake_up()的使用
- quartz初探(一)
- MPMoviePlayerController 网络视频加载
- Android 用APN来获取手机号