首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。 【说明】 计算一个整数数组a的最长递增子序列长度的方法描述如下: 假设数组a的长度为n,用数组b的元素b[i]记录以a[i](0≤i<n)为结尾元素的最长递增子序列的长
阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。 【说明】 计算一个整数数组a的最长递增子序列长度的方法描述如下: 假设数组a的长度为n,用数组b的元素b[i]记录以a[i](0≤i<n)为结尾元素的最长递增子序列的长
admin
2016-05-10
55
问题
阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。
【说明】
计算一个整数数组a的最长递增子序列长度的方法描述如下:
假设数组a的长度为n,用数组b的元素b
记录以a
(0≤i<n)为结尾元素的最长递增子序列的长度,则数组a的最长递增子序列的长度为
;其中b
满足最优子结构,可递归定义为:
【C代码】
下面是算法的C语言实现。
(1)常量和变量说明
a:长度为n的整数数组,待求其最长递增子序列
b:长度为n的数组,b
记录以a
(0≤i<n)为结尾元素的最长递增子序列的长度,其中0≤i<n
len:最长递增子序列的长度
i,j:循环变量
temp:临时变量
(2)C程序
#include<stdio.h>
int maxL(int*b,int n){
int i,temp=0;
for(i=0;i<n;i++){
if(b
>temp)
temp=b
;
}
return temp;
}
int main()f
int n, a[1 0 0], b[1 0 0], i, j, len;
scanf(”%d”, &n);
for(i=0; i<n; i++){
scanf(”%d”, &a
);
}
(1) ;
for(i=1; i<n; i++){
for(j =0,len=0; (2) ; j++){
if( (3) &&len<b[j])
len=b[j];
}
(4) ;
}
printf(”len:%d\n”, maxL(b,n));
printf(”\n”);
}
【问题1】
根据说明和C代码,填充C代码中的空(1)~(4)。
【问题2】
根据说明和C代码,算法采用了 (5)设计策略,时间复杂度为 (6) (用O符号表示)。
【问题3】
已知数组a={3,10,5,15,6,8},根据说明和C代码,给出数组b的元素值。
选项
答案
【问题1】 (1)b[0]=1 (2)j<i (3)a[j]<=a[i] (4)b[i]=len+1 【问题2】 (5)动态规划 (6)O(n
2
) 【问题3】 b={1,2,2,3,3,4}
解析
本题考查算法设计与分析以及用C程序设计语言来实现算法的能力。
此类题目要求考生认真阅读题目对问题的描述,理解算法思想,并会用C程序设计语言来实现。
【问题1】
根据题干描述,用一个数组b来记录数组a每个子数组的最长递增子序列的长度,即b
记录a[0..i]的最长递增子序列的长度。首先,只有一个元素的数组的最长递增子序列的长度为1,即给b[0]直接赋值1。因此,空(1)处填写“b[0]=1”。两重for循环中,第一重是从a数组的第二个元素开始,考虑每个子数组a[0..i]的最长递增子序列的长度,第二重是具体的计算过程。考虑子数组a[0..i],其最长递增子序列的长度应该等于子数组a[0..i-1]中的比元素a
小的元素的最长递增子序列的长度加1,当然,可能存在多个元素比元素a
小,那么存在多个最长递增子序列的长度,此时,取最大者。因此,空处填写“j<i”,即考虑子数组a[0..i-1]。空(3)处填写“a[j]<=a
”,要求元素值小于等于a
而且目前的长度应该小于当前考虑的子数组的最长子序列长度。空(4)处填写“b
=len+1”。简单的说,程序是根据题干给出的公式
来实现的。另外,计算的过程不是采用递归的方式,而是以一种自底向上的方式进行的。
【问题2】
从题干说明和C程序来看,这是一个最优化问题,而且问题具有最优子结构,一个序列的最长递增子序列由其子序列的最长递增子序列构成。在计算过程中采用了自底向上的方式来进行,这具有典型的动态规划特征。因此采用的是动态规划设计策略。
C程序中,有两重for循环,因此时间复杂度为O(n
2
)。
【问题3】
输入数组为数组a={3,10,5,15,6,8),很容易得到,子数组a[0..0],a[0..1],…,a[0..5]的最长递增子序列的长度分别为1,2,2,3,3,4,因此答案为b={1,2,2,3,3,4}。该题可以根据题干说明、C代码来计算。由于输入很简单,答案也可以从输入直接计算出来。
转载请注明原文地址:https://kaotiyun.com/show/fdDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
阅读以下说明,回答问题1和问题2,将解答填入对应的解答栏内。【说明】某单位内部网络拓扑结构如下图所示,在该网络中采用RIP路由协议。
根据你的网络工程经验,请用250字以内的文字简要描述该21层教学综合大楼网络层次结构设计的要点。(不要求画图)该21层教学综合大楼的部分网络拓扑结构如图1-22所示,其中L3_switch1、L3_switch2为该教学综合大楼的两台核心交换机;Swi
如果ping127.0.0.1(本地循环地址),如果该地址无法Ping通,则说明了是什么原因?什么命令是一个监控TCP/IP网络的实用的工具,它可以显示实际的网络连接以及每一个网络接口设备的状态信息?什么命令是把网卡物理地址与IP静态地址捆绑在一起?
若采用电话线方式上网,并按要求在计算机连入网络的同时能通电话,连网速率高于500Kbps,可以选用哪种技术方案?其最高通信速率为多少?若采用电视铜缆接入计算机主干网络,用户端需增添什么设备?网络通信速率为多少?
阅读以下有关网络接入方案的说明,回答问题1~3。【说明】某单位己完成了主干网络的建设任务,现在需要对其职工住宅区的用户接入主干网的技术方案作选型设计。职工住宅已有的通信条件是:(1)电话线(2)电视铜缆。在不重新布线的前提下,以下5种技术方
阅读以下有关传统局域网络运行和维护的叙述,将应填入(n)处的字句写在对应栏内。在对网络运行及维护前首先要了解网络,包括识别网络对象的硬件情况、判别局域网的拓扑结构和信道访问方式、确定网络互联以及用户负载等。常见的3种拓扑结构是星形、(1)与(2)拓
阅读以下说明,回答问题1至问题3。【说明】Plug-gw是Linux配置中常带的通用代理程序,可用来代理POP3、HTTP等应用层服务。附图3为某网络结构图,内部网段上有一台POP3服务器和一台FTP服务器。代理服务器中使用ipchains包过滤
阅读以下电子商务公司应用无线局域网的技术说明,根据要求回答问题1至问题5。【说明】由于市场的不断扩大,A电子商务公司客户数量日益增多。现有的网络已不能满足信息发展的需求,考虑到既要同时满足网络扩容顺利进行及公司日常工作的正常开展,又要保证目前土建
L2TP协议是一种基于(1)协议的二层隧道协议,它结合了Cisco的L2F和MicrosoftPPTP的优点。该协议报文在传输层封装(2)协议之上,为了保证传输的可靠性,L2TP协议对控制报文采取了(3)机制,并要求tunne1对端设备在隧道(tunne
随机试题
尾矿库建设项目包括新建、改建、()以及回采、闭库的尾矿库建设工程。
病例分析要求:(1)注明病历中的精神症状(请在“精神检查”中用画线的方法划出、编号,并在答卷上按你的编号顺序逐条列出所划症状的名称);(2)说明疾病诊断;(3)结合病历写出护理问题及相关因素;(4)写出主要的护理措施。王某男30岁大专
A.胁胀痛B.太息C.两者均有D.两者均无(2000年第105,106题)肝气郁结证,可见()
男,12岁,上前牙牙龈肿胀,咬硬物及刷牙易出血,放松状态可见开唇露齿。血常规未见异常,最可能的局部促进因素为
患儿5岁,2个月来经常夜啼,哭诉右膝关节痛,右腿拒动,不敢行走及站立。曾去医院检查并拍片,未见右膝明显异常。首先应考虑哪个部位有问题
A.处方药B.非处方药C.特殊管理的药品D.处方药和非处方药只能在指定的医学、药学专业刊物进行广告宣传的药品是()。
监理工程师受建设单位委托控制建设工程进度时,所采取的技术措施是指( )。
根据我国宪法修正案,在爱国统一战线中新增加的社会阶层是()。
李明:“目前我国已经具备了开征遗产税的条件。我国已经有一大批人进入了高收入阶层,遗产税的开征有了雄厚的现实经济基础。我国的基尼系数已超过了4.0的国际警戒线,社会的贫富差距在逐渐加大,这对遗产税的开征提出了迫切的要求。”张涛:“我国目前还不具备开征遗产税的
假设数据库已经打开,要删除其中的视图myview,可使用命令:
最新回复
(
0
)