关于LRU算法用python的简单实现

本文介绍了如何使用Python实现LRU(Least Recently Used)缓存淘汰算法,包括动态生成列表以及算法逻辑操作的详细步骤。通过示例代码展示了完整实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

	内存管理的一种页面置换算法,对于在内存中但又不用的数据块(内存块)叫做LRU,操作系统会根据哪		    些数据属于LRU而将其移出内存而腾出空间来加载另外的数据。
	LRU指的是最少使用策略(Least Recently Used)

在python中我首先是会根据输入动态生成一个列表,以下为生成列表的代码块:

# 这边进行相应列表的生成
data_list = []
while True:
    try:
        list_num = int(input("请输入列表数字:"))
        data_list.append(list_num)
    except:
        break

接下来则是进行算法的逻辑操作:

# 进行算法实现
while True:
    try:
        num = int(input("请输入数字:"))
        if num in data_list:
            data_list.remove(num)
            data_list.insert(0, num)
        else:
            if len(data_list) < 5:
                data_list.insert(0, num)
            else:
                data_list.pop(-1)
                data_list.insert(0, num)
        print(data_list)
    except:
        break

完整的代码片段如下:

"""LRU淘汰算法:
    1。如果此数据已经被缓存到链表中,遍历得到数据节点,将其从原位置删除,然后再插入链表头部
    2。如果数据没有再缓存链表中:缓存未满, 则直接加入头部
                            缓存已满, 则先删除尾节点,再将新的节点插入到链表
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值