网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
void show()
{
sum = 0;
cout <<" 被访问的下一磁道号 移动距离(磁道数)\n";
for(int i = 0;i < n; ++i)
{
printf(" %3d %3d\n", sp[i], lenp[i]);
sum += lenp[i];
}
cout <<" 平均寻道长度: “<<(double)sum/n <<”\n";
}
//先来先服务
void FCFS()
{
for(int i = 0;i < n; ++i)
{
sp[i] = p[i];
if(i) lenp[i] = abs(sp[i-1] - sp[i]);
else lenp[i] = abs(now - sp[i]);
}
}
//最短寻道优先
void SSTF()
{
nnow = now;
int fl[maxn] = {0};
for(int i = 0;i < n; ++i)
{
int minx = 999999, pp;
for(int j = 0;j < n; ++j)
{
if(!fl[j] && abs(nnow - p[j]) < minx)
{
minx = abs(nnow - p[j]);
pp = j;
}
}
sp[i] = p[pp];
lenp[i] = minx;
nnow = p[pp];
fl[pp] = 1;
}
}
//扫描算法
bool cmp(int a, int b)
{
return a > b;
}
void SCAN()
{
nnow = now;
int aa[maxn], bb[maxn], ak = 0, bk = 0;
for(int i = 0;i < n; ++i)
{
if(p[i] < nnow) aa[ak++] = p[i];
else bb[bk++] = p[i];
}
sort(aa, aa+ak,cmp);
sort(bb, bb+bk);
int i = 0;
for(int j = 0;j < bk; ++j)
{
sp[i] = bb[j];
lenp[i++] = bb[j] - nnow;
nnow = bb[j];
}
for(int j = 0;j < ak; ++j)
{
sp[i] = aa[j];
lenp[i++] = nnow - aa[j];
nnow = aa[j];
}
}
//循环扫描算法
void CSCAN()
{
nnow = now;
int aa[maxn], bb[maxn], ak = 0, bk = 0;
for(int i = 0;i < n; ++i)
{
if(p[i] < nnow) aa[ak++] = p[i];
else bb[bk++] = p[i];
}
sort(aa, aa+ak);
sort(bb, bb+bk);
int i = 0;
for(int j = 0;j < bk; ++j)
{
sp[i] = bb[j];
lenp[i++] = bb[j] - nnow;
nnow = bb[j];
}
for(int j = 0;j < ak; ++j)
{
sp[i] = aa[j];
lenp[i++] = abs(aa[j] - nnow);
nnow = aa[j];
}
}
int main()
{
xbegin:
cout<<"请输入被访问的总磁道数: ";
cin >> n;
if(n <= 0 || n > 100)
{
cout <<“输入不合法,请重新输入!\n”;
goto xbegin;
}
nowCD:
cout <<"请输入当前磁道: ";
cin >> now;
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
dn.net/topics/618636735)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!