羀#include<>蚅#include<>袂#definemSIZE3袀#definepSIZE8莀staticintmemery[mSIZE]={0};蒆staticintprocess[pSIZE]={0};羄voidbuild(); 节voidLRU(); 蝿intmain(intargc,char*argv[]){膆printf("产生随机序列如下:\n");羅 build();莁 printf("最近最久未使用(LRU)置换算法\n");芈 LRU();羆 system("PAUSE"); 螃 return0;螃}蚈voidbuild()蚇{袄 inti=0;袁 for(i=0;i<pSIZE;i++)肇 {莇 process[i]=(int)(*rand()/(RAND_MAX+)+1);羅 printf("%d ",process[i]);羀 }螁 printf("\n");膈}蚃voidLRU()莂{芀 intflag[mSIZE]={0};袈 inti=0,j=0;螄 intm=-1,n=-1;蒁 intmax=-1,maxflag=0;虿 intcount=0;莄 for(i=0;i<pSIZE;i++)袆 {袃 for(j=0;j<mSIZE;j++)聿 {膅 if(memery[j]==0)蚃 {羁 m=j;蒈 break;袅 }蚄 }肀 for(j=0;j<mSIZE;j++)羇 {薅 if(memery[j]==process[i])螆 {蒂 n=j;莇 }莆 }薃 for(j=0;j<mSIZE;j++)薀 {肀 if(flag[j]>maxflag)肆 {薄 maxflag=flag[j];羃 max=j;蒀 }袇 } 莂 if(n==-1) 肁 {衿 if(m!=-1) 薇 {蒃 memery[m]=process[i];膀 flag[m]=0;莈 for(j=0;j<=m;j++)莇 {芀 flag[j]++;芈 }蒄 m=-1;螄 }肈 else 莆 {羃 memery[max]=process[i];薄 flag[max]=0;聿 for(j=0;j<mSIZE;j++)蝿 {薆 flag[j]++;肀 }膁 max=-1;袇 maxflag=0;肆 count++;螁 }羈 }羅 else 蒅 {蒁 memery[n]=process[i];聿
最近最久未用算法 来自淘豆网m.daumloan.com转载请标明出处.