最短作業優先(sjf)是一種排程任務請求的排程策略。每個任務請求包含有請求時間(即向系統提交的請求的時間)和持續時間(即完成任務所需時間)。當前任務完成後,sjf策略會選擇最短持續時間執行任務,若最短持續時間相同,則選擇最早請求時間的任務。任務等待時間為請求時間和實際開始時間之差。假設系統一直執行任務,從未空閒。設計程式,輸入請求時間表和對應的持續時間表,以及任務數量,計算平均等待時間。
輸入例子:
[0,1,3,9],[2,1,7,5],4
輸出例子:
0.5解題思路:
按照持續時間長短排序,只要請求時刻<=當前時刻就執行,否則找滿足請求時刻<=當前時刻,持續時間次短的執行。
vector可以定義出變長陣列,但是只能用push_back壓值,不能直接vec[i]=進行賦值。
#include #include using namespace std;
void sortduration(int *arr1, int *arr2,int n)
}int main();
int duration[4]=;
int n=4;
int time=duration[0];
double wait=0;
vectorbook;
for(int i=0;i//計算n次
for(int j=1;j
短作業優先SJF
sjf排程演算法 短作業 程序 優先排程演算法sj p f,是指對短作業或短程序優先排程的演算法。它們可以分別用於作業排程和程序排程。短作業優先 sjf 的排程演算法是從後備佇列中選擇乙個或若干個估計執行時間最短的作業,將它們調入記憶體執行。而短程序優先 spf 排程演算法則是從就緒佇列中選出乙個估...
SJF(短作業優先)演算法 C 實現
簡介後續補上。該演算法為非搶占式排程演算法,搶占式sjf演算法 後續補上.include include using namespace std 程序個數 const int n 5 程序結構體 struct process 列印所有程序資訊 void printprocess process a ...
最短作業優先演算法(不完善)
float minwaitingtime int requesttimes,int durations,int n float minwaitingtime int requesttimes,int durations,int n for i 0 iif i 0 第一次執行的時候,不用考慮作業的執行...