文章

83

粉丝

0

获赞

0

访问

6.3k

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


评分及理由

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

得分:2分

理由:学生的算法思路是使用计数数组统计每个元素的出现次数,然后遍历计数数组找到出现次数超过n/2的元素。这种方法在思路上是正确的,能够解决问题,但并不是题目要求的"尽可能高效的算法"。标准答案使用的是Boyer-Moore投票算法,时间复杂度为O(n),空间复杂度为O(1),而学生的算法空间复杂度为O(n),没有达到最优。因此扣2分。

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

得分:4分

理由:代码实现基本正确,能够完成主元素的查找功能。但存在以下问题:

  1. 数组B未初始化:代码中声明了int B[n],但没有初始化为0,这会导致计数错误。这是一个逻辑错误,扣1分。
  2. 函数返回类型问题:题目要求返回主元素或-1,但学生代码使用了void类型并直接打印结果,不符合题目要求,扣1分。
  3. 计数数组大小问题:题目说明0≤a_i<n,所以计数数组B的大小为n是足够的,这一点正确。
  4. 算法逻辑正确:虽然实现细节有问题,但核心逻辑是正确的,能够完成主元素的查找。

综合扣3分,得4分。

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

得分:2分

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

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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发