文章

137

粉丝

0

获赞

1

访问

15.1k

头像
2011年(408)计算机学科专业基础综合试题 - 第42题回答
数据结构
发布于2025年11月24日 19:29
阅读数 9


评分及理由

(1)得分及理由(满分4分)

得分:0分

理由:学生的设计思想是使用双指针遍历两个序列,通过计数找到第(m+n)/2小的元素。但这种方法的时间复杂度为O(m+n),不符合题目要求的"尽可能高效"(标准答案采用二分法达到O(log₂n))。此外,题目明确说明两个序列等长,但学生使用了m和n两个不同的长度参数,说明对题目理解有偏差。最关键的是,这种方法找到的是两个序列合并后的中位数位置,但题目要求的是两个升序序列的中位数定义(即两个序列中位数再取中位数),概念理解错误。

(2)得分及理由(满分9分)

得分:2分

理由:代码存在多处逻辑错误:
1. 变量i、j未初始化
2. mid = (b + a)/2 语法错误,b和a是数组指针,不能直接相加
3. 当k==mid时返回当前元素,但mid计算方式错误
4. 循环结束后没有处理剩余元素的情况
5. 没有正确处理两个序列等长的前提条件
给予2分是因为代码基本框架正确,使用了双指针遍历的思想,空间复杂度分析正确。

(3)得分及理由(满分2分)

得分:1分

理由:空间复杂度O(1)分析正确,得1分。但时间复杂度分析为O(m+n)虽然对于该算法是正确的,但不符合题目高效要求,且没有考虑到两个序列等长的条件,因此扣1分。

题目总分:0+2+1=3分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发