文章

77

粉丝

0

获赞

0

访问

7.2k

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


评分及理由

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

学生给出的基本设计思想是使用一个大小为n的数组B记录每个元素出现的次数,然后遍历B数组查找出现次数大于n/2的元素。这种方法虽然正确,但并不是题目要求的“尽可能高效的算法”,因为标准答案使用了更高效的摩尔投票算法(时间复杂度O(n),空间复杂度O(1)),而学生的方法空间复杂度为O(n)。但题目只要求“尽可能高效”,且学生的思路能正确解决问题,因此不扣分。但学生没有像标准答案那样分两步(候选主元素和验证),思路相对简单,但正确,得4分。

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

学生代码实现中存在逻辑错误:在第二个循环(统计次数)中,学生使用了一个双层循环(第一次识别)或单层循环(第二次识别)。第二次识别的代码是正确的单层循环,但第一次识别有误(双层循环会导致错误,但第二次识别已纠正)。根据第二次识别结果,代码逻辑正确:初始化数组B为0,遍历A数组,对每个A[i]在B中对应位置计数,最后检查B中是否有元素计数大于n/2。但代码中有一个冗余条件判断(A[i] >= 0 && A[i] < n),题目已说明0≤a_i

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

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

题目总分:4+7+2=13分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发