文章

133

粉丝

1

获赞

100

访问

32.0k

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


评分及理由

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

学生给出的基本设计思想是使用双指针遍历两个数组,通过移动指针来寻找中位数。这种方法虽然能够解决问题,但时间复杂度为O(n),而题目要求尽可能高效,标准答案采用二分查找思想达到O(log₂n)的时间复杂度。学生的思路正确但不够高效,因此扣1分。得分:3分。

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

学生的代码实现存在以下问题:
1. 变量i和j未初始化,直接使用会导致未定义行为。
2. 循环条件中使用分数½和\frac{1}{2},在C语言中不合法,应使用整数运算。
3. 函数没有返回值,而是直接打印结果,与题目要求的函数设计不符。
4. 逻辑上,当count达到总长度一半时,中位数应该是当前指针所指位置的前一个元素(因为指针移动后指向下一个),但学生的代码在输出时使用A[i-1]或B[j-1],这一点正确,但整体逻辑因上述问题不完整。
由于存在明显的逻辑错误和代码不规范性,扣4分。得分:5分。

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

学生正确分析了时间复杂度为O(n)和空间复杂度为O(1),但时间复杂度分析基于其自身算法,未达到最优,但根据题目要求不扣分(因为问题3只要求说明自身算法复杂度)。因此得分:2分。

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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发