SJF(最短作业优先)
2016-06-14 12:00
405 查看
#include<stdio.h>
#include<stdlib.h>
#define N 100
typedef struct process
{
int num;
int time;
int start;
int end;
int begin;
int freetime;
int arrivetime;
int finish;
int turn;
double average;
}P;
P a
,b;
int wordtime=0;
void sjf(int i,int j,int t,int n){
a[0].finish=a[0].arrivetime+a[0].freetime;//给予a[0]初值
wordtime=a[0].finish;
a[0].turn=a[0].time;
a[0].average=(float)a[0].turn/a[0].time;
for(i=1;i<n;i++)//执行
{
for(j=i+1;j<n;j++)
{
if(a[j].arrivetime<=a[i-1].finish)
{
for(t=i;t<=j;t++)
{
if(a[t].time>a[j].time)
{
b=a[j];
a[j]=a[t];
a[t]=b;
}
}
}
}
if(a[i].arrivetime<a[i-1].finish)
{
a[i].finish=a[i-1].finish+a[i].freetime;
a[i].turn=a[i].finish-a[i].arrivetime;
}
else
{
a[i].finish=a[i].arrivetime+a[i].freetime;
a[i].turn=a[i].time;
}
a[i].average=(float)a[i].turn/a[i].time;
wordtime=a[i].finish;
}
#include<stdlib.h>
#define N 100
typedef struct process
{
int num;
int time;
int start;
int end;
int begin;
int freetime;
int arrivetime;
int finish;
int turn;
double average;
}P;
P a
,b;
int wordtime=0;
void sjf(int i,int j,int t,int n){
a[0].finish=a[0].arrivetime+a[0].freetime;//给予a[0]初值
wordtime=a[0].finish;
a[0].turn=a[0].time;
a[0].average=(float)a[0].turn/a[0].time;
for(i=1;i<n;i++)//执行
{
for(j=i+1;j<n;j++)
{
if(a[j].arrivetime<=a[i-1].finish)
{
for(t=i;t<=j;t++)
{
if(a[t].time>a[j].time)
{
b=a[j];
a[j]=a[t];
a[t]=b;
}
}
}
}
if(a[i].arrivetime<a[i-1].finish)
{
a[i].finish=a[i-1].finish+a[i].freetime;
a[i].turn=a[i].finish-a[i].arrivetime;
}
else
{
a[i].finish=a[i].arrivetime+a[i].freetime;
a[i].turn=a[i].time;
}
a[i].average=(float)a[i].turn/a[i].time;
wordtime=a[i].finish;
}
相关文章推荐
- Chapter 4.SQL编程
- mysql启动参数 skip-grant-tables
- 正则表达式和数字验证
- 十六进制颜色代码
- 解决连接SQL Server 2005数据库的问题
- Tomcat配置虚拟目录
- Kodi ——6 Controls (5) MultiImage Control
- PowerDesigner 15及破解补丁下载(转)
- Java 的乱码解决方法 统一编码 这里使用UTF-8编码
- POI读取EXCEL
- Python学习-with用法
- Apache POI
- httpservletrequest 对象详解
- 数据库设计14个技巧
- 数据库设计实例
- 数据库设计经验谈(转)
- 规范化-数据库设计原则
- 图解Office 2010八项新功能
- JAVA环境变量设置
- 通过JDBC连接oracle数据库的十大技巧