首次适应算法和最佳适应算法和循环首次适应算法和最坏适应算法
来源:互联网 发布:淘宝卖眼药水 编辑:程序博客网 时间:2024/05/16 09:43
#include<iostream>using namespace std;int FreePartition[100];//空闲分区块数组int FirstPartition[100];//首次适应算法数组int CycleFirstPartition[100];//循环首次适应算法数组int BestPartition[100];//最佳适应算法数组int WorstPartition[100];//最坏适应算法数组int ProcessNeed[100];//每个作业的大小int PartitionNum,ProcessNum;//分区块数,作业数//首次适应算法void First(){int i,j;char str;for(i=0;i<PartitionNum;i++){FirstPartition[i]=FreePartition[i];}for(i=0;i<ProcessNum;i++)//找出第一块满足作业的分区for(j=0;j<PartitionNum;j++){if(ProcessNeed[i]>FirstPartition[j])continue;else{FirstPartition[j]-=ProcessNeed[i];//找到后把分区大小减去作业的大小 str='A'+i;cout<<"作业"<<str<<"在第"<<j+1<<"块分区中"<<endl;break;}}cout<<endl;cout<<"分配之后剩余情况:"<<endl; for(i=0;i<PartitionNum;i++)cout<<FirstPartition[i]<<" ";cout<<endl<<endl;}//循环首次适应算法void CycleFirst(){int i,j=1;char str;for(i=0;i<PartitionNum;i++){CycleFirstPartition[i]=FreePartition[i];}for(i=0;i<ProcessNum;i++)//for(j=0;j<PartitionNum;j++){j=j-1;while(j<PartitionNum){if(ProcessNeed[i]>CycleFirstPartition[j])//continue;j++;else{CycleFirstPartition[j]-=ProcessNeed[i];str='A'+i;cout<<"作业"<<str<<"在第"<<j+1<<"块分区中"<<endl;break;}//j++;//cout<<j<<" ";if(j==PartitionNum && i!=ProcessNum){i=-1;}}}cout<<endl;cout<<"分配之后剩余情况:"<<endl;for(i=0;i<PartitionNum;i++)cout<<CycleFirstPartition[i]<<" ";cout<<endl<<endl;}//最佳适应算法void Best(){int i,j,k;char str; for(i=0;i<PartitionNum;i++){BestPartition[i]=FreePartition[i];}for(i=0;i<ProcessNum;i++){k=0;for(j=0;j<PartitionNum;j++){//cout<<BestPartition[j]<<" "<<ProcessNeed[i]<<endl;if(BestPartition[j]>=ProcessNeed[i]){k=j;break;}} for(int n=0;n<PartitionNum;n++) { if(BestPartition[n]<BestPartition[k] && BestPartition[n]>=ProcessNeed[i])//找最佳的 k=n; }BestPartition[k]-=ProcessNeed[i];str='A'+i;cout<<"作业"<<str<<"在第"<<j+1<<"块分区中"<<endl;}cout<<endl;cout<<"分配之后剩余情况:"<<endl;for(i=0;i<PartitionNum;i++)cout<<BestPartition[i]<<" ";cout<<endl<<endl;}//最坏适应算法void Worst(){int i,j,k;char str;for(i=0;i<PartitionNum;i++){WorstPartition[i]=FreePartition[i];}for(i=0;i<ProcessNum;i++){k=0;for(j=0;j<PartitionNum;j++){if(WorstPartition[j]>WorstPartition[k])//找到最大的分区 k=j;}WorstPartition[k]-=ProcessNeed[i];str='A'+i;cout<<"作业"<<str<<"在第"<<j+1<<"块分区中"<<endl;}cout<<endl;cout<<"分配之后剩余情况:"<<endl;for(i=0;i<PartitionNum;i++)cout<<WorstPartition[i]<<" ";cout<<endl<<endl;}int main(){int i;cout<<"输入分区块数:"<<endl;cin>>PartitionNum;cout<<"输入每个分区的大小:"<<endl;for(i=0;i<PartitionNum;i++)cin>>FreePartition[i];cout<<"输入作业数:"<<endl;cin>>ProcessNum;cout<<"输入每个作业的大小:"<<endl;for(i=0;i<ProcessNum;i++)cin>>ProcessNeed[i];cout<<"------------首次适应算法-----------------"<<endl;First();cout<<"------------循环首次适应算法-------------"<<endl; CycleFirst();cout<<"------------最佳适应算法-----------------"<<endl;Best();cout<<"------------最坏适应算法-----------------"<<endl;Worst();return 0;}
1 0
- 首次适应算法和最佳适应算法和循环首次适应算法和最坏适应算法
- 首次适应算法(FF)和循环首次适应算法(NF)
- 循环首次适应算法
- 常见内存分配算法:首次适应算法(FirstFit)循环首次适应算法(NextFit)最佳适应算法(BestFit)最坏适应算法(WorstFit)
- 动态分区分配-循环首次适应算法+最佳适应算法
- 循环首次适应算法、首次适应算法、最佳适应算法_C语言版
- 操作系统-循环首次适应算法
- 系统内存分配的首次适应算法和最佳适应算法链表模拟实现
- 操作系统-首次适应算法
- 实例分析首次适应算法、最佳适应算法、最差适应算法
- 操作系统-最坏适应算法
- 首先适应算法,最优适应算法,最坏适应算法
- 动态分区分配-首次适应算法
- 动态分区分配-首次适应算法
- 内存分配(首次适应算法)
- FF(首次适应)算法C,Java实现
- 最佳适应算法
- 操作系统-最佳适应算法
- 人类的行为与程序计算
- Spring Bean工厂继承关系和源码分析
- ASCII学习对照表
- hdoj5563Clarke and five-pointed star【判断五角星】
- centos下mysql主从搭建总结
- 首次适应算法和最佳适应算法和循环首次适应算法和最坏适应算法
- react 入门知识
- iOS笔记19
- 走过电竞之路的程序员
- 关于调整互联网、电话订票起售时间的公告
- 一个简单的溢出程序解析
- ElasticSearch2.0 index中文乱码及解决问题
- c++命令结束进程树
- 指向指针的指针(2)