信管网每日一练
软件设计师 - 每日一练 导航

软件设计师案例分析每日一练试题(2022/12/8)

2022年12月09日来源:信管网 作者:cnitpm

软件设计师案例分析当天每日一练试题地址:www.cnitpm.com/exam/ExamDayAL.aspx?t1=4

往期软件设计师每日一练试题汇总:www.cnitpm.com/class/27/e4_1.html

软件设计师案例分析每日一练试题(2022/12/8)在线测试:www.cnitpm.com/exam/ExamDayAL.aspx?t1=4&day=2022/12/8

点击查看:更多软件设计师习题与指导

软件设计师案例分析每日一练试题内容(2022/12/8)

试题四
设有m台完全相同的机器运行n个独立的任务,运行任务i所需要的时间为ti,要求确定一个调度方案是的完成所有任务所需要的时间最短。
假设任务已经按照其运行时间从大到小排序,算法基于最长运行时间作业优先的策略;按顺序先把每个1务分配到一台机器上,然后将剩余的任务一次放入最先空闲的机器。
[C代码]
下面是算法的C语言实现。
10常量和变量说明
m:机器数。
n:任务数。
t[]:输入数组,长度为n,其中每个元素表示任务的运行时间,下标从0开始。
s[][]:二维数组,长度为m*n,下标从0开始,其中元素s[i][j]表示机器i运行的任务j的编号。
d[]:数组,长度为m其中元素d[i]表示机器i的运行时间,下标从0开始。
count[]:数组,长度为m,下标从0开始,其中元素count[i]表示机器i运行的任务数。
i:循环变量。
j:循环变量。
k:临时变量。
max:完成所有任务的时间。
min:临时变量。
11函数schedule
void   schedule12{
int i,j,k max=0;
for(i=0;i<m;i++){
d[i]=0;
for(j=0;j<n;j++){
s[i][j]=0;
}
}
for(i=0;i<m;i++){    //分配前m个任务
s[i][0]=i;
______;
count[i]=1;
}
for(______;i<n;i++){    //分配后n-m个任务
int min=d[0];
k=0;
for(j=1;j<n;j++){    //确定空闲机器
if(rain>d[j]){
min=d[j];
k=j;    //机器k空闲
}
}
______;
count[k]=count[k]+1;
d[k]=d[k]+t[i];
for(i=0;i<m;i++){    //确定完成所有任务所需要的时间
if(______){
max=d[i];
}
}
}
}
10、根据说明和C代码,填充C代码中的空。
11、根据说明和C代码,该问题采用了______算法设计策略,时间复杂度为______(用O符号表示)
12、考虑实例m=3(编号0~2),n=7(编号0~6),各任务的运行时间为{16,14,6,5,4,3,2}。则在机器0、1和2上运行的任务分别为______、______和______(给出任务编号)。从任务开始运行到完成所需要的时间为______。

信管网试题答案与解析:www.cnitpm.com/st/249142786.html

信管网考友试题答案分享:

信管网试题答案与解析:www.cnitpm.com/st/249142786.html

温馨提示:因考试政策、内容不断变化与调整,信管网提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

分享至:

信管网 - 信息系统项目管理专业网站

下载APP-在线学习

培训课程

0元畅享

考试题库

免费资料

客服咨询