文章

27

粉丝

0

获赞

0

访问

539

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


评分及理由

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

学生作答的基本设计思想是使用双指针法,从两个序列的首元素开始比较,每次将较小值的指针后移,总共移动⌈L/2⌉次(L为两个序列总长度)。这种方法能够找到两个升序序列合并后的中位数,思路正确且可行。虽然与标准答案的二分法不同,但根据评分要求"思路正确不扣分",因此不扣分。得4分。

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

学生的代码实现存在以下问题:

  1. 循环条件a>0,但a在循环内没有递减,会导致死循环
  2. flag变量的逻辑混乱,当S1[i] > S2[j]时j++,但flag设为false;当S1[i] ≤ S2[j]时i++,flag设为true。最后根据flag返回S2[j]或S1[i],这个逻辑不能正确返回中位数
  3. 边界条件处理不完善,当i或j达到L时break,但此时返回值的逻辑不正确
  4. 函数没有正确处理所有情况,特别是当两个序列长度相等时的中位数查找

虽然基本思路正确,但代码实现存在严重的逻辑错误,无法正确解决问题。根据"逻辑错误扣分"原则,扣除7分。得2分。

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

学生正确分析了时间复杂度为O(L),空间复杂度为O(1),与双指针法的实际复杂度一致。得2分。

题目总分:4+2+2=8分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发