文章

255

粉丝

0

获赞

0

访问

62.3k

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


评分及理由

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

得2分。学生的基本设计思想是使用一个辅助数组记录每个元素出现的次数,并在计数过程中检查是否有元素出现次数超过n/2。这个思路是正确的,能够解决问题,但相比标准答案的摩尔投票算法,空间复杂度较高。由于题目要求"尽可能高效的算法",而学生的算法在空间效率上不如标准答案,因此扣2分。

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

得5分。算法实现基本正确,能够找出主元素。但存在以下问题:

  • 代码中使用了变长数组int B[n],这在某些C++标准中不被支持,存在可移植性问题(扣1分)
  • 算法逻辑上有一个小缺陷:当某个元素计数超过n/2时立即返回,但如果后续有更大的计数,这个逻辑仍然正确,因为主元素是唯一的(不扣分)
  • 相比标准答案的O(1)空间复杂度算法,此实现需要O(n)的额外空间(扣1分)

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

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

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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发