请珍惜小编劳动成果,该文章为小编原创,转载请注明出处。

该算法选择这样的进程,其要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短

java代码实现如下:

import java.util.List;
import java.util.Scanner; //最短寻道时间优先
public class SSTF { private int shortIndex=0;
private int visit[]; //访问序列 public int[] sstf(int data[],int begin){
int nearest=99999; //最近的值,变量
visit=new int[data.length];
for(int j=0;j<data.length;j++){
for(int i=0;i<data.length;i++){
if(data[i]!=-1){
if(Math.abs(nearest-begin)>Math.abs(data[i]-begin)){
nearest=data[i];
shortIndex=i;
}
}
}
visit[j]=nearest;
data[shortIndex]=-1;
begin=nearest;
nearest=99999;
}
return visit;
}
public void print(int visit[],int begin){
for(int i=0;i<visit.length;i++){
System.out.print(visit[i]+" ");
}
int length=0;
for(int i=0;i<visit.length-1;i++){
length+=Math.abs(visit[i]-visit[i+1]);
}
length+=Math.abs(begin-visit[0]);
System.out.println("平均寻道长度为"+length/visit.length);
}
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入请求个数");
int num=scanner.nextInt();
System.out.println("请输入请求序列,空格隔开");
int data[]=new int[num];
for(int i=0;i<num;i++){
data[i]=scanner.nextInt();
}
SSTF sstf=new SSTF();
System.out.println("请输入起始头位置");
int begin=scanner.nextInt();
sstf.print(sstf.sstf(data,begin),begin);
}
//98 183 37 122 14 124 65 67
}

测试:

版权声明:本文为博主原创文章,未经博主允许不得转载。

最短寻道优先算法----SSTF算法的更多相关文章

  1. 最短寻道优先算法(SSTF)——磁盘调度管理

    原创 最近操作系统实习,敲了实现最短寻道优先(SSTF)——磁盘调度管理的代码. 题目阐述如下: 设计五:磁盘调度管理 设计目的: 加深对请求磁盘调度管理实现原理的理解,掌握磁盘调度算法. 设计内容: ...

  2. 磁盘寻道时间算法之----------------SCAN算法和最短寻道时间优先调度算法

    若干个等待访问磁盘者依次要访问的柱面编号为:80,40,74,14,60,31,61,假设每移动一个柱面需要4毫秒时间,移动到当前位于35号柱面,且当前的移动方向向柱面号增加的方向.请计算: (1)若 ...

  3. 《算法导论》读书笔记之图论算法—Dijkstra 算法求最短路径

    自从打ACM以来也算是用Dijkstra算法来求最短路径了好久,现在就写一篇博客来介绍一下这个算法吧 :) Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算一个节点到其他所有节点的 ...

  4. 最短路径算法-Dijkstra算法的应用之单词转换(词梯问题)(转)

    一,问题描述 在英文单词表中,有一些单词非常相似,它们可以通过只变换一个字符而得到另一个单词.比如:hive-->five:wine-->line:line-->nine:nine- ...

  5. 【啊哈!算法】算法7:Dijkstra最短路算法

    上周我们介绍了神奇的只有五行的Floyd最短路算法,它可以方便的求得任意两点的最短路径,这称为“多源最短路”.本周来来介绍指定一个点(源点)到其余各个顶点的最短路径,也叫做“单源最短路径”.例如求下图 ...

  6. 【啊哈!算法】算法6:只有五行的Floyd最短路算法

            暑假,小哼准备去一些城市旅游.有些城市之间有公路,有些城市之间则没有,如下图.为了节省经费以及方便计划旅程,小哼希望在出发之前知道任意两个城市之前的最短路程.         上图中有 ...

  7. 最短路径算法——Dijkstra算法与Floyd算法

    转自:https://www.cnblogs.com/smile233/p/8303673.html 最短路径 ①在非网图中,最短路径是指两顶点之间经历的边数最少的路径. AE:1    ADE:2  ...

  8. 【坐在马桶上看算法】算法7:Dijkstra最短路算法

           上周我们介绍了神奇的只有五行的Floyd最短路算法,它可以方便的求得任意两点的最短路径,这称为“多源最短路”.本周来来介绍指定一个点(源点)到其余各个顶点的最短路径,也叫做“单源最短路径 ...

  9. 【坐在马桶上看算法】算法6:只有五行的Floyd最短路算法

            暑假,小哼准备去一些城市旅游.有些城市之间有公路,有些城市之间则没有,如下图.为了节省经费以及方便计划旅程,小哼希望在出发之前知道任意两个城市之前的最短路程.         上图中有 ...

随机推荐

  1. 采购,接收数据收集SQL汇总(从订单->接收->INVOICE所有数据关联SQL)

    INDEX OF QUERIES Source Document: Purchase Order: 1: po_headers_all (sql) 2: po_lines_all (sql) 3: p ...

  2. 如何上传代码到git上

    windows环境下上传代码到git仓库 1,https://github.com/new 2,创建成功后是这样子的 3,远程添加github上的Blog仓库. 1)进入本地文件夹下-右击鼠标-Git ...

  3. SharePoint 2010 -- Silverlight托管客户端模型简单示例

    Silverlight托管客户端模型,是SharePoint2010推出的三种客户端模型".NET托管"."ECMAScript"."Sliverli ...

  4. 和菜鸟一起学linux之DBUS基础学习记录

    D-Bus三层架构 D-Bus是一个为应用程序间通信的消息总线系统, 用于进程之间的通信.它是个3层架构的IPC 系统,包括: 1.函数库libdbus ,用于两个应用程序互相联系和交互消息. 2.一 ...

  5. ruby技巧001:求md5散列

    ruby核心库中未包含md5之类的功能,不过在其标准库digest中可以方便的使用该功能: = Digest (from ruby core) ---------------------------- ...

  6. ionic1 sqlite的添加使用

    开始使用这个存储方式的原因是  之前用的Local Storage 存储在ios设备上  当内存达到一定程度时 ios会自动清除app的一部分存储 所以之前存的东西可能会被清除  达不到想要的功能效果 ...

  7. Strom topology 设计的演进

    场景:采集日志数据,日志数据有多个字段组成,需求是根据日志数据中的N个字段(维度),去统计指标数据(个数.平均值)等.

  8. spring 配置多数据源(mysql读写分离)

    前段时间刚换了家新公司,然后看项目代码里用了数据库读写分离的架构,然后好奇扒了代码简单看了下,总体来说就是运用spring aop切面方式来实现的.看明白后就在自己的个人小项目里运用了下,测试OK,所 ...

  9. FFMpeg编译之路

    为了编译这个东西,快折腾了一个星期了.期间经历了很多痛苦的过程,今天我把整个过程,以及在这个过程的感悟写下来,以备日后查看,也希望能帮到一些像我一样的兄弟姐妹. 在这一个星期里前前后后加起来总共使用了 ...

  10. nvm使用笔记

    1.先发个中文博客的链接:http://www.cnblogs.com/kaiye/p/4937191.html 2.安装node版本的命令问题,版本号前面要加v,安装6.9.1的正确命令是: nvm ...