早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->

阅读下列算法说明和流程图,根据要求回答问题1~问题3。 [说明] 某机器上需要处理n个作业job1,job2,

题目

阅读下列算法说明和流程图,根据要求回答问题1~问题3。

[说明]

某机器上需要处理n个作业job1,job2,…,jobn,其中:

(1)每个作业jobi(1≤i≤n)的编号为i,jobi有一个收益值P[i]和最后期限值d[i];

(2)机器在一个时刻只能处理一个作业,而且每个作业需要一个单位时间进行处理,一旦作业开始就不可中断,每个作业的最后期限值为单位时间的正整数倍;

(3)job1~jobn的收益值呈非递增顺序排列,即p[1]≥p[2]≥…≥p[n];

(4)如果作业jobi在其期限之内完成,则获得收益p[i];如果在其期限之后完成,则没有收益。

为获得较高的收益,采用贪心策略求解在期限之内完成的作业序列。图3-25是基于贪心策略求解该问题的流程图。

(1)整型数组J[]有n个存储单元,变量k表示在期限之内完成的作业数,J[1..k]存储所有能够在期限内完成的作业编号,数组J[1..k)里的作业按其最后期限非递减排序,即d[J[1]]≤…≤d[J[k]]。

(2)为了便于在数组J中加入作业,增加一个虚拟作业job0,并令d[0]=0,J[0]=0。

(3)算法大致思想是:先将作业job1的编号1放入J[1],然后,依次对每个作业jobi(2≤i≤n)进行判定,看其能否插入到数组J中。若能,则将其编号插入到数组J的适当位置,并保证J中作业按其最后期限非递减排列;否则不插入。

jobi能插入数组J的充要条件是:jobi和数组J中已有作业均能在其期限之内完成。

(4)流程图中的主要变量说明如下。

i:循环控制变量,表示作业的编号;

k:表示在期限内完成的作业数;

r:若jobi能插入数组J,则其在数组J中的位置为r+1;

q:循环控制变量,用于移动数组J中的元素。

请将图3-25中的(1)~(3)空缺处的内容填写完整。

参考答案
正确答案:这是一道考查贪心算法的流程图分析的试题。(1)空缺处表示第2个作业到第n个作业的主循环的条件判断由于i是循环控制变量因此(1)空缺处所填写的内容是i=h。 注意到题干中给出的关键信息“J[1..k)存储所有能够在期限内完成的作业编号数组J[1..k]里的作业按其最后期限非递减排序即”。换言之数组J中的作业J[i](1≤i≤k)是在其期限之前完成的作业且。由图3-25给出的算法流程图可知主循环内嵌套了两个循环第1个循环判断当前考虑的作业i应该插入到J中的什么位置用循环控制变量r表示当前考虑的J中的作业。使用虚拟作业J[0]允许作业较方便地插入到第1个位置。为了保证J中的作业期限按升序排序作业J[r]若比作业i的期限大则循环控制变量r要自减因此(2)空缺处所填写的内容是d[J[r]]>d[i]。 d[J[r]]与r的关系只有两种:d[J[r]]>r表示还可能在J[1]与J[r]之间插入作业“d[J[r]]=r表示不可以在J[1]~J[r]之间插入作业i。d[J[r]]r的情况不会存在因为J中若有r个作业那么最后一个作业的期限不可能小于r。当作业i大于等于作业J[r]的期限时此时找到了作业i插入的位置即r+1。第2个循环的作用是将作业J[r+1]……J[k]依次往后移动此处用插入排序算法的思想。最后把作业i插入到 J[r+1]处因此(3)空缺处所填写的内容是J[r+1]=i(或J[q+1]=i)。
这是一道考查贪心算法的流程图分析的试题。(1)空缺处表示第2个作业到第n个作业的主循环的条件判断,由于i是循环控制变量,因此(1)空缺处所填写的内容是i=h。 注意到题干中给出的关键信息“J[1..k)存储所有能够在期限内完成的作业编号,数组J[1..k]里的作业按其最后期限非递减排序,即”。换言之,数组J中的作业J[i](1≤i≤k)是在其期限之前完成的作业,且。由图3-25给出的算法流程图可知,主循环内嵌套了两个循环,第1个循环判断当前考虑的作业i应该插入到J中的什么位置,用循环控制变量r表示当前考虑的J中的作业。使用虚拟作业J[0],允许作业较方便地插入到第1个位置。为了保证J中的作业期限按升序排序,作业J[r]若比作业i的期限大,则循环控制变量r要自减,因此(2)空缺处所填写的内容是d[J[r]]>d[i]。 d[J[r]]与r的关系只有两种:d[J[r]]>r,表示还可能在J[1]与J[r]之间插入作业“d[J[r]]=r,表示不可以在J[1]~J[r]之间插入作业i。d[J[r]]r的情况不会存在,因为J中若有r个作业,那么最后一个作业的期限不可能小于r。当作业i大于等于作业J[r]的期限时,此时找到了作业i插入的位置,即r+1。第2个循环的作用是将作业J[r+1]……J[k]依次往后移动,此处用插入排序算法的思想。最后把作业i插入到 J[r+1]处,因此(3)空缺处所填写的内容是J[r+1]=i(或J[q+1]=i)。
看了阅读下列算法说明和流程图,根据...的网友还看了以下:

核潜艇在海水中航行需要大量的氧气供应,科学家设想在其中建立一个小球藻(一种藻类植物)空气净化器来解 语文 2020-05-15 …

一个计算题小张、小李、小王三人到商场购买办公用品,小张购买1个计算器,3个订书机,7包打印纸共需要 数学 2020-06-17 …

电与热的综合问题(1)太阳能热水器贮满水,水温从20度升高到50度,需要吸收多少热量?(2)用电加 其他 2020-07-03 …

1.小张、小李、小王三人到商场购买办公用品,小张购买1个计算器,3个订书机,7包打印纸共需要316 数学 2020-07-05 …

询问关于电流表的两个问题:1、电流表全部是否需要并联分流器?2、电流表能否不用分流器,直接串联进电 物理 2020-07-11 …

如图是初中化学实验常见的仪器和实验,回答下列问题(1)图中仪器A的名称是,F的名称是;加热时需要垫 化学 2020-07-11 …

据卫生部统计,中国每年约有150万的人需要器官移植,但是每年仅1万人能够接受移植手术.器官缺乏和免疫 语文 2020-11-05 …

为了从海带中提取碘,某研究性学习小组设计并进行了如下实验:(1)步骤①灼烧海带时,除需要三脚架外,还 化学 2020-11-15 …

实验室需要做一些实验,需要购买一些实验相关的仪器和设备,但是我是新手,不晓得各个实验需要什么仪器·1 化学 2020-12-07 …

实验室用氯化钠固体配制1.0mol/L的NaCl溶液500mL,回答下列问题:(1)所需仪器为:容量 化学 2021-01-22 …