首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和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
42
问题
阅读下列说明和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
软件设计师下午应用技术考试
软考中级
相关试题推荐
为了使DNS_Server1能正确解析本地Web站点的域名,需对DNS_Server1中的DNS服务进行配置。在图1所示的对话框中,新建的区域名称是(1);在图2所示的对话框中,添加的新建主机名称为(2),IP地址栏应填入(3)。将DNS_Serve
请在(1)~(4)空白处填写恰当的内容。DHCP的工作过程是:1)IP租用请求。DHCP客户机启动后,发出一个DHCPDISCOVER消息,其封包的源地址为(1),目标地址为(2)。2)IP租用提供。当DHCP服务器收到DHCPDI
根据你的网络工程经验,请用250字以内的文字简要描述该21层教学综合大楼网络层次结构设计的要点。(不要求画图)请用300字以内的文字,以提纲形式描述该21层教学综合大楼综合布线设计的方案要点。
阅读以下说明,回答问题。【说明】网络地址转换(NAT)的主要目的是解决IP地址短缺问题以及实现TCP负载均衡等。在如图5-5所示的设计方案中,与Internet连接的路由器采用网络地址转换。【问题】请根据路由器的NAT表和
若采用电话线方式上网,并按要求在计算机连入网络的同时能通电话,连网速率高于500Kbps,可以选用哪种技术方案?其最高通信速率为多少?依据ISO/OSI参考模型对无线扩频网络设备进行分类,可以分为哪几种类型?用无线扩频设备实现网络互连需要何种配套设备
若采用电话线方式上网,并按要求在计算机连入网络的同时能通电话,连网速率高于500Kbps,可以选用哪种技术方案?其最高通信速率为多少?若采用电视铜缆接入计算机主干网络,用户端需增添什么设备?网络通信速率为多少?
在RAS上存在着两个RJ45的端口,分别为Console与AUX,请问这两个端口的用途是什么?(控制在100个字以内)在调用超级终端程序进行设备连接时,应该对设备的连接参数进行正确设置,参数主要包括串口数据传输率、数据位数。停止位数以及是否有奇偶校验。
阅读以下有关网络设备安装与调试的叙述,分析设备配置文件,回答问题1、问题2和问题3。现以一台远程访问服务器(RemoteAccessServer,RAS)Cisco2509、RJ45为例来说明。第1步,准备安装与调试所需的设备,主要包
L2TP协议是一种基于(1)协议的二层隧道协议,它结合了Cisco的L2F和MicrosoftPPTP的优点。该协议报文在传输层封装(2)协议之上,为了保证传输的可靠性,L2TP协议对控制报文采取了(3)机制,并要求tunne1对端设备在隧道(tunne
随机试题
以下关于律师和律师事务所的说法,不正确的是:()
患者,男,28岁。一年来下腹疼痛,伴大便次数增多,常于上午上班前大便3~4次,稀水便,偶伴黏液,排便后腹痛缓解,一般每周发作2~3次,患者一般情况好,体检仅发现左下腹压痛,余无异常。为进一步明确诊断,首选下列哪项检查
14个月男婴,牛奶和稀粥喂养,近2个月腹泻不愈,食欲欠佳,但时而自食墙皮或泥块,皮肤黏膜渐苍白,肝脾轻度肿大,HB60g/L,RBC3.5×1012/L,最可能的诊断是
老年男性近期发生左侧精索静脉曲张,最可能的原因是
注册会计师通过了解认为被审计单位内部控制健全有效,因此注册会计师决定依赖其内部控制,并对被审计单位的内部控制进行了简单的测试,将重大错报风险评价为低水平,进而实施了相对较为简略的实质性程序,但之后发现由于被审计单位串通舞弊最终导致有一项影响财务报表的重大舞
根据《中华人民共和国教育法》的规定,受教育者在()等方面依法享有平等权利。
职务序列的建立,应当以管理规格、管理规模、管理难度为依据。公安民警职务将设置为()三个序列。
毛泽东对武装斗争和非武装斗争形式间的辩证关系的认识是()。
安全管理制度主要包括管理制度的制订和发布、评审和修订。考虑了对带有密级信息安全管理制度的管理和日常维护的是(5)。
下面描述中不属于数据库系统特点的是
最新回复
(
0
)