LRU(最近最少使用页面置换算法)

#!/usr/bin/env python
#-*-coding:utf-8-*-

'''
 LRU是Least Recently Used的缩写,即最近最少使用页面置换算法,
 是为虚拟页式存储管理服务的,是根据页面调入内存后的使用情况进行决策了
 下面是实现的方法
'''

def LRU(data, space = 5):
    '''
         data 一个装着数据的列表序列
         space 表示空间,这个空间数影响数据的呈现
    '''
    if type(data) != list:
        return
    if space < 2 :
        return

    lru = []
    index = 0
    for num in data:
        try:
            index = lru.index(num)
        except ValueError:
            index = -1

        count = len(lru)
        if index >= 0: #编号找到
            tmp = lru[index]
            del lru[index]
            lru.append(tmp)
        else:
            if count >= space: #当达到内存空间最大数时,将最不长用的元素去掉。
                del lru[0]
                lru.append(num)
            else:
                lru.append(num)

        print lru,
        print

if __name__ == "__main__":
    LRU([4,7,0,7,1,0,1,2,1,2,6])

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值