文章

26

粉丝

93

获赞

1

访问

1.4k

头像
2013年计算机学科专业基础综合试题 - 第41题回答
数据结构
发布于2025年9月18日 21:19
阅读数 7


评分及理由

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

得2分。学生的基本设计思想是使用辅助数组统计每个元素的出现次数,然后遍历辅助数组检查是否存在出现次数大于n/2的元素。这种方法思路正确,能够解决问题,但不符合题目要求的“尽可能高效”的条件(标准答案使用了空间复杂度O(1)的算法,而该方法空间复杂度为O(n))。因此,虽然思路正确,但效率较低,扣2分。

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

得5分。学生实现了基于辅助数组的算法,代码逻辑正确,能够正确统计元素出现次数并判断主元素。但存在以下问题:
1. 函数参数应为数组和长度(如int A[], int n),但学生使用了vector,且未明确传递长度(虽然通过size()获取,但参数声明不完整),扣1分。
2. 代码中未考虑元素值可能越界(题目中a_i范围是[0, n-1],但辅助数组索引直接使用元素值,理论上不会越界,但需注意n与数组大小的关系),此处不扣分。
3. 算法空间复杂度为O(n),不符合“尽可能高效”的要求(标准答案空间复杂度为O(1)),扣1分。
其他部分正确,注释清晰。

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

得2分。学生正确分析了时间复杂度和空间复杂度,均为O(n),与所实现的算法一致。

题目总分:2+5+2=9分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发