文章

75

粉丝

78

获赞

0

访问

4.1k

头像
2013年(408)计算机学科专业基础综合试题 - 第41题回答
数据结构
发布于2025年12月10日 16:10
阅读数 41


评分及理由

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

得分:2分

理由:学生的基本设计思想是使用一个长度为n的辅助数组来统计每个元素出现的次数,然后遍历辅助数组找到出现次数大于n/2的元素。这个思路可以解决问题,但并不是题目要求的“尽可能高效的算法”。标准答案中给出了时间复杂度O(n)、空间复杂度O(1)的摩尔投票算法,而学生的算法空间复杂度为O(n),效率较低。因此扣2分。

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

得分:3分

理由:学生的代码实现存在以下问题:
1. 函数参数定义错误:`int E[A]`应为`int A[]`或`int* A`
2. 函数逻辑错误:代码中判断条件是`B[k] > 1`,这只能找到出现次数大于1的元素,而不是大于n/2的主元素
3. 返回值错误:找到主元素后应该返回该元素值,而不是返回1
4. 没有正确判断主元素条件:缺少与n/2的比较
5. 内存泄漏:分配了内存但没有释放
代码虽然基本实现了统计频数的思想,但核心逻辑错误导致无法正确找出主元素,因此扣4分。

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

得分:2分

理由:学生正确分析了算法的时间复杂度为O(n)和空间复杂度为O(n),这与其实现代码的复杂度一致,因此得满分。

题目总分:2+3+2=7分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发