zoukankan      html  css  js  c++  java
  • 电梯调度算法

    对于电梯的要求:电梯在一楼出发,待用户输完想停的楼层后,停在其中的一层楼然后所有人下去徒步找各自的目标地,使最后所有人的爬楼梯数最短。

          设最后停在i层,i层下有n1个人,i层有n2个人,i+1层有n3个人,假设停i层为最短Y,若停在i-1层则Y-(n1-n2-n3)停在i+1层则Y-(n3-n1-n2)则n1>n2+n3停在i-1层,n3>n1+n2则电梯停在i+1层合算其余停i。

     1 //电梯算法
     2 #include<iostream>
     3 using namespace std;
     4 
     5 int main()
     6 {
     7     int people[10];
     8     int i;
     9     int n1 = 0;
    10     int n2;
    11     int n3 = 0;
    12     /*int sum;*/
    13     for (i = 0; i < 10; i++)
    14     {
    15         cin >> people[i];
    16     /*    sum += people[i];*/
    17     }
    18     n2 = people[0];
    19     for (i = 1; i <= 9; i++)
    20     {
    21         n3 += people[i];
    22     }
    23     for (i = 0; i < 10; i++)
    24     {
    25         if (n3 > n1 + n2)
    26         {
    27             n1 = n1 + n2;
    28             n2 = people[i + 1];
    29             n3 -= people[i + 1];
    30         }
    31         else
    32         {
    33             cout << "要停在";
    34             cout << i + 1;
    35             break;
    36         }
    37     }
    38 
    39 
    40     return 0;
    41 }

    时间复杂度o(n)的算法优化了,却是我思维僵化了,本算法在老师的帮助下想出的。

  • 相关阅读:
    C艹函数与结构体
    c++ const 用法总结
    c++ 重载
    c++ 的makefile文件实例
    python3 异步模块asyncio
    C++ 面向对象 类成员函数this指针
    基于注释的Spring Security实战
    web 安全 初探 (正在更新)
    Spring dbcp连接池简单配置 示例
    Spring JDBC
  • 原文地址:https://www.cnblogs.com/mtant/p/4437178.html
Copyright © 2011-2022 走看看