刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

阅读以下说明和流程图,填补流程图中的空缺,将解答填入答题纸的对应栏内。
[说明]
下面流程图的功能是:在给定的一个整数序列中查找最长的连续递增子序列。设序列存放在数组A[1:n](n≥2)中,要求寻找最长递增子序列A[K:K+L-1](即A[K]<A[K+1]<…<A[K+L-1])。流程图中,用Kj和Lj分别表示动态子序列的起始下标和长度,最后输出最长递增子序列的起始下标K和长度L。
例如,对于序列A={1,2,4,4,5,6,8,9,4,5,8},将输出K=4,L=5。
[流程图] 

注:循环开始框内应给出循环控制变量的初值和终值,默认递增值为1,格式为:循环控制变量=初值,终值

使用微信搜索喵呜刷题,轻松应对考试!

答案:

n-1
Lj+1→Lj
Lj>L
Kj
i+1

解析:

本题考查的是理解和绘制程序流程图的能力,特别是在设计算法时,如何在一个整数序列中查找最长的连续递增子序列。查找的方法是从头开始逐个与后面邻接的数进行比较。

一、关于循环开始的部分,由于需要比较A[i]与A[i+1],因此循环应从1到n-1,所以(1)处应填n-1。

二、当A[i]<A[i+1]时,表示发现了连续递增的情况,此时应增加动态连续递增序列的长度,因此(2)处应填写Li+1→Lj。

三、当A[i]<A[i+1]不成立时,表示之前的连续递增已经结束。此时需比较当前的动态长度Li与记录的最大长度L。所以(3)处应填Lj>L。

四、当Lj>L时,表示找到了更长的连续递增子序列,需要更新记录的最大长度和起始下标,因此(4)处应填写Lj→L和Kj→K。

五、当Lj→L不成立时,表示当前子序列并非最长,需要从下一个位置重新开始查找,因此(5)处应填写i+1,并且动态长度Lj需要重置为1。

最后,循环结束后还需要再次比较最后一个动态连续子序列与之前的记录,以确保找到的最长连续递增子序列是真正的最长序列。

创作类型:
原创

本文链接:阅读以下说明和流程图,填补流程图中的空缺,将解答填入答题纸的对应栏内。[说明]下面流程图的功能是:在

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share