Skip to content

cc32/Rust-LRU

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rust-LRU

系统软件开发实践作业

版本信息

rustc 1.65.0 (897e37553 2022-11-02)
cargo 1.65.0 (4bc8f24d3 2022-10-20)

算法简介

LRU是Least Recently Used的缩写,即最近最少使用页面置换算法,是为虚拟页式存储管理服务的,是根据页面调入内存后的使用情况进行决策了。由于无法预测各页面将来的使用情况,只能利用“最近的过 去”作为“最近的将来”的近似,因此,LRU算法就是将最近最久未使用的页面予以淘汰。

目录说明

目录中共有三个文件夹 .vscode src target,其中 .vscode 是Vscode的配置文件,src 内仅有一个 main.rs 文件保存了全部的代码, target内包含cargo自动编译生成的可执行文件。主目录下的 Cargo.lock Cargo.toml 为Cargo的配置文件。

使用说明

1.配置对应环境后,将文件下载至本地,通过命令行进入文件所在目录。

2.使用cargo test,运行测试。

本人完成的内容是基于Leetcode上的算法题,页面存储容量为2, 模拟新增页面输入。 为检测算法正确与否,测试用例为

——————检测是否实现了访问热度的更新与删增—————

输入(1,1), (2,2)

访问(1) 输出(1)

输入(3,3)

访问(2) 输出<(1),因为此时2已被删除

输入(4,4)

访问(1), (3), (4) 输出(-1),(3),(4)

———————检测当存在重复的输入时是否完成了覆写————————

输入(4,5)

访问(4) 输出(5),原本的(4,4)被覆写为(4,5)

—————————————改写测试用例——————————————————

将LRUCache::new(capacity)中的capacity改为int范围的正整数来实现存储容量的改变。通过.put(key,value)和.get(key)来模拟页面的输入和访问。通过assert_eq!(a,b)来验证结果是否正确。

运行结果

输入cargo test后,会显示running test 1 以及 test restult:ok等字样,说明通过了全部的测试点。

About

系统软件开发实践作业

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages