頁面置OPT演算法

2021-07-29 07:24:21 字數 807 閱讀 5430

已經第二次出現這種opt模擬的題目了,時間被卡到懷疑人生

第一次出現時統計置換次數

第二次出現是新增部分條件:同時存在最大值時按頁面大的刪除,最後輸出操作結束後的結果,按照最原始的順序輸出。

貼上**。

#includeusing namespace std;

#define inf 0x3f3f3f

struct node;

node(int pos,int x);

bool friend operator < (node xx,node yy)

int thispos,maxsize=0;

//節點儲存的是下乙個出現的位置,和這個數x

//每次查詢之後,如果存在那麼直接刪除,再插入新節點更新這個數的下乙個位置

//如果不存在,則需要從快取中刪除,直接刪除集合最後的節點(因為本身就是按照要求排序的)

//每次找出刪除節點的快取中位置,更新該位置的值

//更新這個數在快取中的第幾個位置

for(int i=1;i<=a;i++)

else

else

}s.insert(node(nextpos[i],num[i]));

ans[thispos]=num[i];

numtopos[num[i]]=thispos;

maxsize=max(maxsize,thispos);

}for(int i=0;i<=maxsize;i++)

printf("\n");

}return 0;

}

頁面置換演算法之 OPT演算法

最佳置換演算法是由belady於1966年提出的一種理論上的演算法。其所選擇的被淘汰頁面,將是以後永不使用的,或許是在最長 未來 時間內不再被訪問的頁面。採用最佳置換演算法,通常可保證獲得最低的缺頁率。從 主存 中移出永遠不再需要的頁面 如無這樣的頁面存在,則選擇最長時間不需要訪問的頁面。這樣可以保...

演算法訓練 反置數

問題描述 乙個整數的 反置數 指的是把該整數的每一位數字的順序顛倒過來所得到的另乙個整數。如果乙個整數的末尾是以0結尾,那麼在它的反置數當中,這些0就被省略掉了。比如說,1245的反置數是5421,而1200的反置數是21。請編寫乙個程式,輸入兩個整數,然後計算這兩個整數的反置數之和sum,然後再把...

佇列元素逆置演算法

1.題目 使用乙個棧 乙個佇列,實現佇列中元素逆置的演算法 2.利用佇列先進先出,棧先進後出的特性,實現佇列元素的逆置 3.原始碼 1.題目 使用乙個棧 乙個佇列,實現佇列中元素逆置的演算法 include define maxsize 1000 typedef structqueue typede...