LRU (Least Recently Used)

原创 2007年10月08日 20:27:00

#include <iostream>
#include <ctime>
#include <windows.h>
#include <climits>
using namespace std;

struct LRUELEM
{
    int data;
    time_t time;
};

#define FREEUP(p) if(p) {delete []p; p = NULL;}

static int getsmalltime(LRUELEM *e, int n);
static int getsameLRU(LRUELEM *e, int data);

int main()
{
    //LRUELEM *e = (LRUELEM*)malloc(3*sizeof(LRUELEM));
   
    int a[5] = {1, 2, 3, 4, 5};
   
    LRUELEM *e = new LRUELEM[3];
   
    for(int i=0; i<3; i++)
    {
        e[i].data = a[i];
        e[i].time = time(NULL);
        Sleep(1000);
    }
   
    for(i=2; i<5; i++)
    {
        if (getsameLRU(e, a[i]) == -1)
        {
            int pos = getsmalltime(e, 3);
            e[pos].data = a[i];
            e[pos].time = time(NULL);
            Sleep(1000);
        } else {
            e[getsameLRU(e, a[i])].time = time(NULL);
            Sleep(1000);
        }
        for(int i=0; i<3; i++)
        {
            cout << e[i].data << "   "<< e[i].time << endl;
        }
        cout << endl;
    }
   
    FREEUP(e);
   
    return 0;
}

static int getsmalltime(LRUELEM *e, int n)
{
    int smalltime = INT_MAX;
    int pos = -1;
    for(int i=0; i<n; i++)
    {
        if(e[i].time<smalltime)
        {
            smalltime = e[i].time;
            pos = i;
        }
    }
    return pos;
}

static int getsameLRU(LRUELEM *e, int data)
{
    for(int i=0; i<3; i++)
    {
        if(e[i].data == data)
        {
            return i;
        }
    }
    return -1;
}

LRU(Least Recently Used)缓存介绍与实现

引子: 我们平时总会有一个电话本记录所有朋友的电话,但是,如果有朋友经常联系,那些朋友的电话号码不用翻电话本我们也能记住,但是,如果长时间没有联系了,要再次联系那位朋友的时候,我们又不得不求助电...
  • dazhi_100
  • dazhi_100
  • 2015-03-11 16:46:49
  • 3365

Least Recently Used(LRU) Cache

Least Recently Used(LRU) Cache:
  • bonny95
  • bonny95
  • 2014-09-13 12:19:59
  • 657

LRU (Least Recently Used) 算法的Java实现

转自:http://my.oschina.net/apdplat/blog/479050 package com.zeus.webcrawler.tool; import java.util.Li...
  • earbao
  • earbao
  • 2015-12-17 11:48:04
  • 770

LRU(least recently used)内存淘汰旧数据

操作系统中可以使用LRU(least recently used)内存淘汰旧数据的策略,如果内存需要加载新数据但空间又不足,则会按照最近访问时间进行排序,并将最老的数据淘汰。 假定缓存容量为4...
  • Ching_777
  • Ching_777
  • 2017-08-22 14:57:32
  • 992

leetcode_Design and implement a data structure for Least Recently Used (LRU) cache

public class LRUCache { private Map map = null; private int capacity; private int size; ...
  • java_student09
  • java_student09
  • 2014-05-13 10:28:01
  • 1942

[leetcode] 146. LRU Cache 解题报告

题目链接: https://leetcode.com/problems/lru-cache/ Design and implement a data structure for Least Rec...
  • qq508618087
  • qq508618087
  • 2016-03-28 04:48:38
  • 1936

LRU(Least recently used)

现在的数据越来越多的被存储,对于数据库来讲,访问大数据量会变得越来越慢,于是为了提高访问的速度,将小范围区域的数据存储在一个高速缓冲存储器,以至于不会每次去读取磁盘,而是在内存中直接访问数据。 内存存...
  • andy296925354
  • andy296925354
  • 2016-09-26 16:37:58
  • 170

LRU(Least Recently Used)

为了尽量减少与理想算法的差距,产生了各种精妙的算法,最少使用页面置换算法便是其中一个。LRU算法的提出,是基于这样一个事实:在前面几条指令中使用频繁的页面很可能在后面的几条指令中频繁使用。反过来说,已...
  • Mr_YarNell
  • Mr_YarNell
  • 2017-06-27 09:00:37
  • 102

晦涩的翻译LRU (Least Recently Used) - 最近最少使用?

在学习缓存的原理时候,会碰到这样一种情况,即当缓存不命中且缓存已满的情况,需要选择将缓存中的某一数据块替换为仍在内存中的目标数据块,但是选择缓存中的哪块被替换更高效呢?就有这个替换策略LRU (Lea...
  • u010666109
  • u010666109
  • 2014-12-13 22:55:53
  • 1279

最近最少使用(LRU)算法模拟--LeastRecentPage

题目 最近最少使用(LRU)缓存算法从缓存中收回最近最少使用元素(当缓存满时)。当缓存请求元素后,应将元素添加到缓存(如果之前不再缓存中),并将其作为缓存中最近使用最多的元素。 给高速缓存的最大容...
  • f2006116
  • f2006116
  • 2016-07-04 17:25:59
  • 1082
收藏助手
不良信息举报
您举报文章:LRU (Least Recently Used)
举报原因:
原因补充:

(最多只允许输入30个字)