博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
电梯调度算法的实现
阅读量:6976 次
发布时间:2019-06-27

本文共 3779 字,大约阅读时间需要 12 分钟。

View Code
1 class SCAN  2     {  3   4         static void Main(string[] args)  5         {  6             SCAN s = new SCAN();  7   8             int[] a = { 55, 58, 39, 18, 90, 160, 150, 38, 184 };  9             int nowway = 100; 10  11  12             int[] high = s.high(nowway, a);//高磁道 13             int hl = high.Length; 14  15  16  17             int[] low = s.low(nowway, a);//低磁道 18             int ll = low.Length; 19  20  21             int[] all = new int[hl + ll]; 22             for (int i = 0; i < hl; i++) 23             { 24                 all[i] = high[i]; 25  26             } 27             for (int i = 0, j = 0; i < ll; i++, j++) 28             { 29                 all[hl + i] = low[j]; 30             } 31  32  33             int[] movelength = new int[all.Length]; 34             for (int i = 0; i < all.Length; i++) 35             { 36                 Console.WriteLine(all[i] + "      "); 37                 int move = 0; 38                 if (i == 0) 39                 { 40                     move = all[0] - 100; 41                     movelength[i] = move; 42                     Console.WriteLine("移动磁道数 " + move); 43                     continue; 44  45                 } 46                 if (all[i] > all[i - 1]) 47                 { 48                     move = all[i] - all[i - 1]; 49                     movelength[i] = move; 50  51                 } 52                 else 53                 { 54                     move = all[i - 1] - all[i]; 55                     movelength[i] = move; 56                 } 57  58                 Console.WriteLine("移动磁道数 " + move); 59  60  61             } 62  63             int summovelentgth = 0; 64             for (int i = 0; i < movelength.Length; i++) 65             { 66                 summovelentgth += movelength[i]; 67  68  69             } 70             Console.WriteLine("平均寻道长度:" + (double)summovelentgth / movelength.Length); 71  72  73  74  75         } 76  77          78         public int[] low(int nowway, int[] a) 79         { 80             int mincount = 0; 81             for (int i = 0; i < a.Length; i++) 82             { 83                 if (a[i] < nowway) 84                 { 85                     mincount++; //小于磁道数的 86                 } 87             } 88  89             int[] a1 = new int[mincount]; 90             int j = 0; 91  92             for (int i = 0; i < a.Length; i++) 93             { 94                 if (a[i] < nowway) 95                 { 96  97                     a1[j] = a[i]; //小于磁道数的 98                     j++; 99                 }100             }101 102             Array.Sort(a1);//对小磁道升序排列103             int k = a1.Length;104             int[] a3 = new int[k];105             k--;106             for (int i = 0; i < a1.Length; i++, k--)107             {   //降序排列108                 a3[i] = a1[k];109 110             }111 112 113             return a3;114         }115         public int[] high(int nowway, int[] a)116         {117 118             int maxcount = 0;119 120             for (int i = 0; i < a.Length; i++)121             {122                 if (a[i] > nowway)123                 {124 125                     maxcount++; //大于磁道数的126                 }127             }128 129             int[] a2 = new int[maxcount];130             int j = 0;131             int m = 0;132             for (int i = 0; i < a.Length; i++)133             {134                 if (a[i] > nowway)135                 {136 137                     a2[m] = a[i]; //大于磁道数的138                     m++;139                 }140             }141 142             Array.Sort(a2);//对大磁道升序排列143             return a2;144         }145 146 147 148 149 150     }

最近加班真是苦啊!!还有一个月回北京

转载于:https://www.cnblogs.com/xinshijie/archive/2012/07/26/2610682.html

你可能感兴趣的文章
2013年终回顾:水下的世界
查看>>
tomcat排错过程
查看>>
自己的linux系统
查看>>
virus.win32.parite.h病毒查杀
查看>>
VC 实现线程池
查看>>
vim简单用法
查看>>
记一个最简单的多线程实例
查看>>
【初級篇】华为NAT技术(静态NAT)
查看>>
flume对nginx群集日志收集方案
查看>>
could not inspect the application package
查看>>
python 语法和数据类型、运算符和表达式
查看>>
VS2010 VS2012 的快捷键
查看>>
Android telephony MMS 学习笔记
查看>>
centos 常用命令1
查看>>
Mina hello
查看>>
【汇编】C++ 函数调用之——有参无返回调用(传值)
查看>>
批量删除指定数据库中的指定表
查看>>
安装配置apache sentry服务
查看>>
对象引用与回收判断
查看>>
easyDarwin工作流程
查看>>