文章

241

粉丝

0

获赞

1

访问

14.8k

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


评分及理由

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

得分:2分

理由:学生采用了归并排序的思想,通过双指针遍历来寻找中位数,这个思路能够解决问题,但并不是最优解。标准答案使用的是二分查找思想,时间复杂度为O(log₂n),而学生的算法时间复杂度为O(n),在效率上不如标准答案。由于题目要求"在时间和空间两方面都尽可能高效的算法",学生的算法虽然正确但不够高效,因此扣2分。

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

得分:6分

理由:学生的代码实现基本正确,能够找到两个升序序列的中位数。但存在以下问题:

  1. 代码中"int length = sizeof(A)/sizeof(int);"这行有问题,因为当数组作为函数参数传递时,sizeof(A)返回的是指针大小而不是数组大小,这会导致计算错误。这是一个逻辑错误,扣1分。
  2. 算法逻辑基本正确,但效率不如标准答案的二分法,扣1分。
  3. 代码缺少对边界情况的考虑,比如当两个序列长度不同时的情况(虽然题目说明是等长序列),但整体实现还是能解决题目要求的问题,扣1分。

代码结构清晰,注释适当,双指针的实现逻辑正确。

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

得分:2分

理由:学生对时间复杂度和空间复杂度的分析完全正确。时间复杂度确实是O(n),空间复杂度确实是O(1),分析准确无误。

题目总分:2+6+2=10分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发