zoukankan      html  css  js  c++  java
  • 最短寻道优先算法----SSTF算法

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


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


    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
    }
    


    测试:


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

  • 相关阅读:
    关于粒子发射(CAEmitterLayer)
    自定义cell(xib)中button点击事件不能响应的情况
    xcode意外退出
    iOS开发技巧-2
    禁止UIWebView随键盘的弹起而往上滚动
    内联函数
    使用sudo apt-get出现无法解析域名的问题:“cn.archive.ubuntu.com”
    iOS进阶
    swift 中的defer
    iOS中static的作用
  • 原文地址:https://www.cnblogs.com/dingxiaoyue/p/4931790.html
Copyright © 2011-2022 走看看