编程语言
首页 > 编程语言> > 页面淘汰——先进先出算法

页面淘汰——先进先出算法

作者:互联网

前言:
我只是通过网课用例和老师的用例,正确性不能保证hh(非常害怕误导大家
就算错了也许也能给大家提供思路~

算法描述

其实就是环形队列啊!每次把最开始进来的踢出去就好了,easy~

输入用例描述

网课输入用例

3
12
A B C D A B E A B C D E

实验给的用例

3
20
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1

4 
12 
4 3 2 1 4 3 5 4 3 2 1 5

5 
11
4 7 0 7 1 0 1 2 1 2 6

实现代码

#include<iostream>
using namespace std;
const int N = 100;
char q[N];
char cache[N];
int hh = -1;//队头指针
int main()
{
	printf("软件202 唐熙\n");
	int size, n, num = 0;//size表示cache大小,n表示输入页数,num表示中断次数
	cin >> size >> n;
	for (int i = 0; i < n; i++)
		cin >> q[i];
	for (int i = 0; i < n; i++)
	{
		cout << "当前cache数组:";
		for (int i = 0; i < size; i++)
			cout << cache[i] << " ";
		cout << endl;
		int pause = 1, j;
		for (j = 0; j < size; j++)//看看cache里面有没有当前页面,有的话不用管
			if (q[i] == cache[j])
				pause = 0;
		if (pause)//没有的话
		{
			num++;
			if (hh == size - 1)
				hh = -1;
			cache[++hh] = q[i];
		}
	}
	cout << "当前cache数组:";
	for (int i = 0; i < size; i++)
		cout << cache[i] << " ";
	cout << endl;

	cout << "缺页次数:" << num << " 缺页率:" << double(num) / n;
	return 0;
}

网课运行结果

实验用例运行结果


标签:int,cin,网课,char,用例,算法,页面,先进先出,size
来源: https://www.cnblogs.com/tangxibomb/p/16282750.html