首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C代码,回答以下问题,将解答写在答题纸的对应栏内。 【说明】 设有n个货物要装入若干个容重为C的集装箱以便运输,这n个货物的体积分别为{s1,s2,…,sn),且有si≤C(1≤i≤n)。为节省运输成本,用尽可能少的集装箱来装
阅读下列说明和C代码,回答以下问题,将解答写在答题纸的对应栏内。 【说明】 设有n个货物要装入若干个容重为C的集装箱以便运输,这n个货物的体积分别为{s1,s2,…,sn),且有si≤C(1≤i≤n)。为节省运输成本,用尽可能少的集装箱来装
admin
2013-07-09
26
问题
阅读下列说明和C代码,回答以下问题,将解答写在答题纸的对应栏内。
【说明】
设有n个货物要装入若干个容重为C的集装箱以便运输,这n个货物的体积分别为{s1,s2,…,sn),且有si≤C(1≤i≤n)。为节省运输成本,用尽可能少的集装箱来装运这n个货物。
下面分别采用最先适宜策略和最优适宜策略来求解该问题。
最先适宜策略(firstfit)首先将所有的集装箱初始化为空,对于所有货物,按照所给的次序,每次将一个货物装入第一个能容纳它的集装箱中。
最优适宜策略(bestfit)与最先适宜策略类似,不同的是,总是把货物装到能容纳它且目前剩余容重最小的集装箱,使得该箱子装人货物后闲置空间最小。
【C代码】
下面是这两个算法的C语言核心代码。
(1)变量说明
n:货物数
C:集装箱容量
S:数组,长度为n,其中每个元素表示货物的体积,下标从0开始b:数组,长度为n,b
表示第n+i个集装箱当前已经装入货物的体积,下标从0开始i,j:循环变量
k:所需的集装箱数
min:当前所用的各集装箱装入了第i个货物后的最小剩余容量
m:当前所需的集装箱数
temp:临时变量
(2)函数firstfit
int firstfit(){
int i,j;
k=0:
for(i=0;i<n;i++){
b
=0;
}
for(i=0;i<n;i++){
(1)
;
while(C-b[j]<s
){
J++:
}
(2)
;
k=k>(j+1)?k:(j+1);
}
return k;
}
(3)函数bestfit
int bestfit(){
int i,j,min,m,temp;
k=0;
for(i=0;i<n;i++){
bri]=0;
}
for(i=0;i<n;i++){
min=C;
m=k+1:
for(J=0;j<k+1;J++){
temp=C-b[j]-s
;
if(temp>0&&temp<min){
(3)
;
m=j;
}
}
(4)
;
k=k>(j+1)?k:(j+1);
}
return k;
}
根据说明和C代码,填充C代码中的(1)~(4)。
选项
答案
(1)j=0 (2)b[j]=b[j]+s[i] (3)rain=temp (4)b[m]=b[m+s[i]
解析
本题描述的算法包括最先适宜算法和最优适宜算法。其中,最先适宜算法要求按顺序给货物找到一个能容纳它的集装箱,找到即可装箱。这里的关键在于找到第一个能容纳它的集装箱,从头到尾遍历各集装箱即可。firstfit函数用于实现最先适宜算法。定位到(1)处,其上面的for循环用于对所有n个货物进行遍历,分别找出满足条件C-b[j]>=s
的集装箱。但条件C-b[j]<s
中的变量j在(1)前并没有显式的赋值语句,且遍历各集装箱应从第一个开始,因此(1)应填入j=0。(2)处表示货物已放入集装箱的情况,应更新装入货物后的体积,因此(2)应填入b[j]=b[j]+s
。
最优适宜算法不仅要找到能容纳货物的集装箱,而且还要求该集装箱的剩余容量最小。bestfit函数用于实现最优适宜算法。该函数的:for循环语句中的temp表示剩余的最小容量,若其小于min,则应更新其值。因此,(3)应填入min=tamp。和firstfit函数中(2)类似的思路,(4)应填入b[m]=b[m]+s
。
转载请注明原文地址:https://kaotiyun.com/show/tiDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
某系统中,模块A处理与销售相关的所有细节,仅需要发送一个包含销售量、价格和时间的报表到模块B,则这两个模块之间为()耦合。
若C程序的表达式中引用了未赋初值的变量,则______。
用面向对象方法设计了一个父类File和两个子类DiskFile和TapeFile,这两个子类继承了其父类的open方法,并给出不同的实现。不同的子类执行open方法时,有不同的行为,这种机制称为_____。
能够主动采集信息,分析网络攻击行为和误操作的实时保护策略是指(64)。
瀑布模型表达了一种系统的、顺序的软件开发方法。以下关于瀑布模型的叙述中,正确的是(17)。
错误管理的流程可以概括为:测试人员提交新的错误入库,错误状态为1,高级测试人员验证错误,如果确认是错误,分配给相应的开发人员,设置状态为2,如果不是错误,则拒绝,设置为“拒绝”状态:开发人员查询状态为3的错误,做如下处理:如果不是错误,则置状态为“拒绝”,
以下不属于在需求分析阶段编写的文档是
某开发小组为某企业开发较大规模的项目,该开发小组已经为同一行业的其他企业开发过类似的项目,且该项目需求变化很少,则最适宜采用_______开发过程模型。
数据库是按照一定的数据模型组织、存储和应用的______的集合。
某个不确定有限自动机(s0为初态,s3为终态)如下图所示,_______是该自动机可识别的字符串(即从初态到终态的路径中,所有边上标记的字符构成的序列)。
随机试题
功用为解肌透疹的方剂是功用为解肌清热的方剂是
选择性作用于βl受体的药物是
我国已将()种职业致癌物所致的癌症,列人职业病目录。
甲市某县电力调度大楼,层数四层,耐火等级不低于()级。
集合计划终止之日起一个工作日内,管理人和托管人应当在扣除管理费、托管费等费用后,将集合计划资产按照委托人持有集合计划份额的比例或集合资产管理合同的约定,以证券形式分派给委托人。( )
甲公司2012年1月1日购入面值为200万元,年利率为4%的A债券;取得时支付价款208万元(含已到付息期但尚未发放的利息8万元),另支付交易费用1万元,甲公司将该项金融资产划分为交易性金融资产。2012年1月5日,收到购买时价款中所含的利息8万元,201
甲公司有一注册商标,其有效期将于1997年6月1日届满,该公司需要继续使用此商标,便向乙律师提出咨询。乙律师的意见正确的有()
因为面临预算困难,政府机构减少了他们的科研基金,更大量的类似的研究现在由私人基金赞助。这种变化意味着可能导致具有争论性后果的研究将占据所有被资助项目的较小比例。因为私人基金考虑到他们的公众形象,倾向于避免争议。下列哪一个是上文所做的假设?
①导游_______地告诉我们,遇到野象没什么,最多回头跑50米,野象就不会再追了。②你为什么不对我说真话?你为什么老是_______,应付我?③他们看我们,也许就像我们看蚂蚁一般,即使我们中间的那么伟大人物,在他们看来也_______
Thebossmadetheworkers(work)______frommorningtillnight.
最新回复
(
0
)