Skip to content

Latest commit

 

History

History
17 lines (11 loc) · 1.04 KB

lru.md

File metadata and controls

17 lines (11 loc) · 1.04 KB

LRU等内存管理算法

LRU

实现原理: 使用一双向链表 每次数据进来就放第一个(其它的顺延)然后下一个进来它就往后延续,其实类似于栈,永远把最后进来的放第一个 只不过跟栈不同的时候这个数据结构有大小限制,如果数量太多 下面会漏出来。还有一点如果有重复的数据,这个数据会直接提取到第一个顺位。

所以可以这么理解 一个 下面会漏出来的栈 + 重复数据放栈顶。

LFU

这个算法使用的是一种频率的计算方法,也就是说使用最频繁的放第一名,最不频繁的放到最后 代码实现的时候其实可以使用一个计数器 然后根据技术的内容去排序即可。假如新建来一个数据,那么它肯定是1对吧,那么原本计数最差的那个是放最后的,这个数据就不能保留了(在满了的情况下),要给这个 心来的让位置了。

更多

更多详细信息可以参考维基百科