LRU 最近最少使用淘汰演算法 基本實現

2021-09-25 08:43:46 字數 1145 閱讀 4767

計數器法

特殊棧法

暫存器法

下面給出,棧法的簡單演示實現**:

1 #include 2

using

namespace

std;34

void conduct(int size, int num, int a[100

]);//處理函式

5void print(int a, int

num);//輸出函式67

intmain()820

21conduct(stack_size, num, acess);

2223

return0;

24}2526

void conduct(int size, int num, int a[100

])27

34int locate;bool

flag;

35for(j=size; j)

3645}46

if(flag==true)//

有重複47

55 stack[size-1]=a[j];

56 cout << "

壓棧完成

"<

57 cout << "

當前順序:";

5859

print(stack, size);60}

61else

6268 stack[size-1]=a[j];

69 cout << "

置換完成。

"<

70 cout << "

當前順序:";

71print(stack, size);72}

73}74}

7576

void print(int a, int

num)

7783 cout <

84 }

code::blocks 17.12 執行通過!

執行截圖:

LRU最近最少淘汰演算法

lru least recently used,最近最少使用 最常的實現就是使用乙個鍊錶來儲存快取資料,最常用在例如 最近閱讀 經常訪問的 等等等!其核心的思想就是 如果資料最近被訪問過,那麼將來被訪問的機率也會更高!上張圖來看下其儲存資料的是想!1.將資料插入到鍊錶的頭部 2 每當快取資料被訪問時...

如何實現LRU(最近最少使用)快取淘汰演算法?

我們維護乙個有序單鏈表,越靠近鍊錶尾部的結點是越早之前訪問的。當有乙個新的資料被訪問時,我們從煉表頭開始順序遍歷鍊錶。如果此資料之前已經被快取在鍊錶中了,我們遍歷得到這個資料對應的結點,並將其從原來的位置刪除,然後再插入到鍊錶的頭部。如果此資料沒有在快取鍊錶中,又可以分為兩種情況 如果此時快取未滿,...

LRU 最近最少使用頁面置換演算法 淘汰演算法

lru 最近最少使用頁面置換演算法 淘汰演算法 什麼是lru演算法?lru是least recently used的縮寫,即最近最少使用頁面置換演算法,是為虛擬頁式儲存管理服務的。關於作業系統的記憶體管理,如何節省利用容量不大的記憶體為最多的程序提供資源,一直是研究的重要方向。而記憶體的虛擬儲存管理...