• FIFO算法


    package studyJava;
    class FIFO{
    /*
    * 先进先出算法
    * N:内存块的个数
    * array:内存块
    * size:页面数目
    * */
    private static final int N=3;
    private int size;
    Object[] array=new Object[N];
    public boolean isEmpty(){
    if(size==0)
    return true;
    else
    return false;
    }
    //
    public boolean isFully(){
    if(size>=N)
    return true;
    else
    return false;
    }
    /*
    * 页面数目
    * */
    public int size(){
    return size;
    }
    /*
    * 查找元素O在数组array中的位置
    * */
    public int indexOfElement(Object o){
    for(int i=0;i<N;i++){
    if(array[i]==o)
    return i;
    }
    return -1;//否则o不在array中
    }
    /*
    * 页面转换
    * */
    public Object trans(Object o){
    Object e=null;
    int t=0;
    if(indexOfElement(o)!=-1){
    t=indexOfElement(o);
    for (int i = t; i < size-1; i++) {
    array[i]=array[i+1];
    }
    array[size-1]=o;
    }else{
    if(!isFully()){
    array[size]=o;
    size++;
    }else{
    for (int i = 0; i < size-1; i++) {
    array[i]=array[i+1];
    }
    array[size-1]=o;
    }
    }
    if(t==-1)
    return null;
    else
    return array[t];
    }
    /*
    * 输出内存块中的各数据
    * */
    public void showMemoryBlock(){
    for (int i = 0; i < size; i++) {
    System.out.print(array[i]+" ");
    }
    System.out.println();
    }
    }
    public class Main{
    public static void main(String[] args) {
    Integer[] in={7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1};
    FIFO fifo=new FIFO();
    for(int i=0; i<in.length; i++) {
    fifo.trans(in[i]);
    fifo.showMemoryBlock();

    }
    }
    }

  • 相关阅读:
    为Ubuntu配置远程X访问(XDMCP & Xming)
    javascript definite guide 笔记
    marvell 88f6282 uboot编译
    qt下的跨目录多工程编译
    15 Remote Desktop Solutions for Linux.
    ubuntu中设置synergy自动开机启动
    UML 基础: 组件图
    UML基础: 统一建模语言简介
    绘制整洁的 UML 图
    养成良好的绘制 UML 序列图的习惯
  • 原文地址:https://www.cnblogs.com/yunger/p/5644968.html
Copyright © 2020-2023  润新知