public class optimal {public int calculate_OPT(int[] data,int memSize,int dataNum){ //dataNum为便于测试用,以后可直接改为320int[] memory=new int[memSize];for(int i=0;i<memSize;++i){memory[i]=-1; //内存开始为-1;}int tar=0;int spare=memSize;for(int counter=0;counter<dataNum;++counter){boolean flag=false;for(int i=0;i<memSize;++i){if(memory[i]==data[counter]){flag=true;break;}}if(flag){tar++;//System.out.println(data[counter]+"is already in the memory");continue;}else{if(spare!=0){memory[memSize-spare]=data[counter];//System.out.println(data[counter]+"in");spare--;}else{int[] dist=new int[memSize]; //记录之后使用的最近距离,默认为FFFFfor(int i=0;i<memSize;++i){dist[i]=0xFFFF;for(int j=counter+1;j<dataNum;++j){ //往后找将要使用的指令if(memory[i]==data[j]){dist[i]=j;break;}}}int max=0;for(int i=0;i<memSize;++i){ //找到需要最长时间才会用到的if(dist[i]>dist[max]){max=i;}}//System.out.println(data[counter]+" replace "+memory[max]);memory[max]=data[counter];continue;}}}return tar;}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。