最短作业优先(SJF)

最短作业优先(SJF)是一种优先选择持续时间最短的任务进行调度的策略。在给定的任务请求时间表和持续时间表中,通过计算平均等待时间来评估其性能。解题思路涉及将任务按持续时间排序,并在请求时刻符合条件时执行任务。
摘要由CSDN通过智能技术生成

最短作业优先(SJF)是一种调度任务请求的调度策略。每个任务请求包含有请求时间(即向系统提交的请求的时间)和持续时间(即完成任务所需时间)。当前任务完成后,SJF策略会选择最短持续时间执行任务,若最短持续时间相同,则选择最早请求时间的任务。任务等待时间为请求时间和实际开始时间之差。假设系统一直执行任务,从未空闲。设计程序,输入请求时间表和对应的持续时间表,以及任务数量,计算平均等待时间。


输入例子:

[0,1,3,9],[2,1,7,5],4

输出例子:

0.5


解题思路:

按照持续时间长短排序,只要请求时刻<=当前时刻就执行,否则找满足请求时刻<=当前时刻,持续时间次短的执行。

vector可以定义出变长数组,但是只能用push_back压值,不能直接vec[i]=进行赋值。


#include <iostream>
#include <vector>
using namespace std;

void sortDuration(int *arr1, int *arr2,int n){		//arr1为排序数列,arr2为跟随变化数列,第一行不参加排序
	for(int i=0;i<n;i++)
		for(int j=1;j<n-1-i;j++)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值