LRU近期最少使用算法

LRU是Least Recently Used 近期最少使用算法,一种页面置换算法,其实现较为简单,Java实现代码如下

 1 import java.util.LinkedList;
 2 import java.util.List;
 3
 4 public class LRU {
 5
 6     private List<Integer> executeSeries = new LinkedList<Integer>();
 7
 8     public LRU(Integer[] executeSeries) {
 9         for (Integer temp : executeSeries) {
10             put(temp);
11         }
12     }
13
14     public void put(Integer cur) {
15         if (cur == null) {
16             return;
17         }
18         for (Integer temp : executeSeries) {
19             if (cur.equals(temp)) {
20                 executeSeries.remove(temp);
21                 break;
22             }
23         }
24         executeSeries.add(cur);
25         System.out.println(ShowUtil.toString(executeSeries));
26     }
27
28     public static void main(String[] args) {
29         // TODO Auto-generated method stub
30         Integer[] executeSeries = {1,2,3,1,2,3,3,4};
31         new LRU(executeSeries);
32     }
33 }

LRU近期最少使用算法

时间: 2024-10-17 13:39:29

LRU近期最少使用算法的相关文章

LRU (近期最少使用)算法 c++实现

前言 这两天碰到面试题,说是页面调度算法,之前在操作系统书上有了解过,LRU(近期最少使用),还有OPT(最佳页面替换算法).FIFO(先进先出页面置换算法),今天先来实现LRU 最近最少使用. LRU 原理 LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是"如果数据最近被访问过,那么将来被访问的几率也更高". 参照网上的写法,给出以下例子做个参考: 1 #include <iostream> 2 #inc

最久未使用算法和最少次数算法

最久未使用算法和最少次数算法 参考 LRU算法 缓存淘汰策略 缓存算法(FIFO .LRU.LFU三种算法的区别) LRU算法(最久未使用算法) 当数据满时,淘汰最久未使用的数据.该算法需要获取所有缓存数据中最久未使用的数据. 链表实现 创建一个固定大小的链表,数据首次被访问,插入到链表头部,如果链表已满则先删除尾元素. 数据被再次访问,将数据移动到链表头部. LFU算法(最少次数算法) 当数据满时,淘汰访问频率最低的数据.该算法需要获取所有缓存数据中访问次数最少的数据. 原文地址:https:

LRU (Least Recently Used) 算法的Java实现

实现代码如下: import java.util.LinkedHashMap; import java.util.Map; /**  * LRU (Least Recently Used) 算法的Java实现  * @param <K>  * @param <V>  * @author 杨尚川  */ public class LRUCache<K, V> extends LinkedHashMap<K, V> {     //缓存大小     privat

物理读之LRU(近期最少被使用)的深入解析

转载请注明出处: http://blog.csdn.net/guoyjoe/article/details/38264883 一组LRU链表包含LRU主链.LRU辅助链.LRUW主链,LRUW辅助链,称为一个WorkSet(工作组)例如以下图: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ3VveUpvZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Sout

【leetcode】:LRU Cache_缓存淘汰算法LRU的设计与实现

内存淘汰算法是一个比较重要的算法,经常会被问道:如果让你设计一个LRU算法你会怎么做?尽可能的保持存取的高效.那么就依着这道算法题对LRU进行一个简单的介绍. 题目地址:https://oj.leetcode.com/problems/lru-cache/ 1.什么是LRU算法?为什么使用LRU? LRU即Least Recently Used的缩写,即最近最少使用的意思.我们知道在内存空间是有限的,那么当内存被数据占满的时候,而需要访问的数据又不在内存中,那么就需要将内存中的最少使用的数据淘汰

使用LRU(last recently used)算法淘汰数据实例

某缓存系统采用LRU淘汰算法,假定缓存容量为4,并且初始为空,那么在顺序访问一下数据项的时候:1,5,1,3,5,2,4,1,2出现缓存直接命中的次数是?,最后缓存中即将准备淘汰的数据项是? 答案:3, 5 解答: 1调入内存 1 5调入内存 1 5 1调入内存 5 1(命中 1,更新次序) 3调入内存 5 1 3 5调入内存 1 3 5 (命中5) 2调入内存 1 3 5 2 4调入内存(1最久未使用,淘汰1) 3 5 2 4 1调入内存(3最久未使用,淘汰3) 5 2 4 1 2调入内存 5

LRU(最近最少使用淘汰算法)基本实现

LRU(Least Recently Used) 出发点:在页式存储管理中,如果一页很长时间未被访问,则它在最近一段时间内也不会被访问,即时间局部性,那我们就把它调出(置换出)内存. 为了实现LRU淘汰算法,需要一些特殊的硬件支持. 三种可行方法 计数器法 特殊栈法 寄存器法 下面给出,栈法的实现代码: 原理: 1 #include <iostream> 2 using namespace std; 3 4 void conduct(int Size, int Num, int A[100])

linux安装redis及phpredis环境配置

下载安装包 cd /home/redis/tar wget http://redis.googlecode.com/files/redis-2.4.17.tar.gz tar zxvf redis-2.4.17.tar.gz cd redis-2.4.17 make cd src make install 在该目录会看到以下文件 redis-benchmark      压力测试 redis-check-aof       检查redis持久化命令文件的完整性 redis-check-dump 

(转)redis 学习笔记(1)-编译、启动、停止

redis 学习笔记(1)-编译.启动.停止 一.下载.编译 redis是以源码方式发行的,先下载源码,然后在linux下编译 1.1 http://www.redis.io/download 先到这里下载Stable稳定版,目前最新版本是2.8.17 1.2 上传到linux,然后运行以下命令解压 tar xzf redis-2.8.17.tar.gz 1.3 编译 cd redis-2.8.17make 注:make命令需要linux上安装gcc,若机器上未安装gcc,redhat环境下,如