文章

164

粉丝

0

获赞

0

访问

8.2k

头像
2011年计算机学科专业基础综合试题 - 第42题回答
数据结构
发布于2025年10月11日 10:48
阅读数 63


评分及理由

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

得分:0分

理由:学生的设计思想是同时遍历两个数组,通过比较元素大小移动指针,当走到第L个位置时返回当前元素。这种方法实际上是寻找两个升序序列合并后的第L小元素,而不是题目要求的中位数。题目要求的是两个等长序列的中位数,应该是合并后的第n个元素(总长度为2n,中位数为第n个),而学生的算法返回的是第L个元素(即第n个),虽然结果正确,但思路描述不准确。更重要的是,这种方法的时间复杂度为O(n),而题目要求尽可能高效,标准答案的O(log₂n)更优。由于思路与高效算法不符,且未理解中位数的本质,扣4分。

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

得分:3分

理由:代码实现了合并查找第L小元素的思路,能够正确返回两个等长升序序列的中位数。代码逻辑基本正确,使用了双指针遍历,空间复杂度O(1)符合要求。但存在以下问题:

  • 未处理边界情况(如数组遍历完但k未达到L的情况)
  • 变量命名不够规范(L应改为n更符合惯例)
  • 算法效率不够高,仅为O(n)而非更优的O(log₂n)
  • 缺少必要的注释说明

由于代码能正确实现功能但效率不高,给予3分。

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

得分:2分

理由:学生正确分析了算法的时间复杂度O(L)(即O(n))和空间复杂度O(1),分析准确完整,给予满分2分。

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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发