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

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

答案:3, 5

解答:

  1. 1调入内存 1
  2. 5调入内存 1 5
  3. 1调入内存 5 1(命中 1,更新次序)
  4. 3调入内存 5 1 3
  5. 5调入内存 1 3 5 (命中5)
  6. 2调入内存 1 3 5 2
  7. 4调入内存(1最久未使用,淘汰1) 3 5 2 4
  8. 1调入内存(3最久未使用,淘汰3) 5 2 4 1
  9. 2调入内存 5 4 1 2(命中2)

因此,直接命中次数是3,最后缓存即将准备淘汰的数据项是5

时间: 2025-01-05 15:16:00

使用LRU(last recently used)算法淘汰数据实例的相关文章

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近期最少使用算法

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[] executeSe

关于如何查找和搜索所有的绑架和逮捕集团的人员的算法和数据结构设计简要说明

这个计划代号   女王陛下 v0.1    拨款 1000元     你来完成啊..帅哥 关于如何精确的查询专业的逮捕和绑架集团的人的算法和数据结构设计 基本特征分析:这些人的心脏是一种专门制造来抓人的心脏,除了心脏以外                         其它器官和功能都和土著自然人一样,甚至显得还优雅一些 这种人造人的特征值:它们所做的任何事情和说的任何语言                  写的任何文章的目的都是为了抓人,这些行为,语言和文章                 

编程实现哈希存储算法的简单实例

编程实现哈希存储算法的简单实现实例. 通过编写一个简单的哈希实例来加强对哈希算法的理解.下面实例包括存储与查找算法.拉链法解决冲突问题. 如果时间长了对哈希算法的理论知识不够了解,可以先阅读前面转载的两篇文档: 字符串哈希到整数函数,算法:http://blog.csdn.net/hzhsan/article/details/25552153 Hash算法冲突解决方法分析:http://blog.csdn.net/hzhsan/article/details/25555127 // 假设现在要实

实现 | 朴素贝叶斯模型算法研究与实例分析

实现 | 朴素贝叶斯模型算法研究与实例分析(白宁超2018年9月4日09:03:21) 导读:朴素贝叶斯模型是机器学习常用的模型算法之一,其在文本分类方面简单易行,且取得不错的分类效果.所以很受欢迎,对于朴素贝叶斯的学习,本文首先介绍理论知识即朴素贝叶斯相关概念和公式推导,为了加深理解,采用一个维基百科上面性别分类例子进行形式化描述.然后通过编程实现朴素贝叶斯分类算法,并在屏蔽社区言论.垃圾邮件.个人广告中获取区域倾向等几个方面进行应用,包括创建数据集.数据预处理.词集模型和词袋模型.朴素贝叶斯

MySQL索引背后的数据结构及算法原理(employees实例)

摘要 http://blog.codinglabs.org/articles/theory-of-mysql-index.html 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等.为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论. 文章主要内

C# ---串口发送接收数据实例

硬件设备: pH/ORP 电导率/TDS/盐度 溶解氧 2000/3000/5000/5500 变送器/控制器 设定: P-08:RS-485输出设定 P-11:485传输设定 设定这俩种的ID号 根据ID,对串口发送请求:接收串口返回的数据. C# ---串口发送接收数据实例

数据库连接---数据实例

安装额VS2008之后,又安装MS2008.最近在看源码,但是附加源码的数据库时,总是会出现: 用sql2008附加错误:数据库版本为655 无法打开,此服务器支持612版本及更低版 这样的错误. 于是很纳闷,本机安装的是MS 2008,源码所用的系统也是MS 2008,怎么会提示我的版本太低,无法打开更高版本呢?经查阅.检查发现,本机数据库引擎中,只有SQLEXPRESS这一种服务器名称. 但是,MS 2008默认的服务器是MSSQLSERVER, MS2005才是SQLEXPRESS.因此平

tweenjs缓动算法使用小实例

这里的tweenjs不是依托于createjs的tewwnjs,而是一系列缓动算法集合.因为本身是算法,可以用在各个业务场景中,这也正是总结学习它的价值所在.tweenjs代码详情: 1 /* 2 * Tween.js 3 * t: current time(当前时间): 4 * b: beginning value(初始值): 5 * c: change in value(变化量): 6 * d: duration(持续时间). 7 * you can visit 'http://easing