文章

37

粉丝

0

获赞

3

访问

1.1k

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


评分及理由

(1)得分及理由(满分4分)
学生给出的算法思想是使用计数数组统计每个元素的出现次数,然后找到出现次数最多的元素并判断是否超过n/2。这种方法虽然正确,但空间复杂度为O(n),而题目要求"尽可能高效的算法",标准答案给出了空间复杂度O(1)的更优解法。不过题目并未明确要求空间复杂度必须为O(1),且学生的思路是正确可行的。根据评分说明"算法的基本设计思想描述或算法实现中部分正确,根据算法复杂度酌情给分",此处扣1分,得3分。

(2)得分及理由(满分7分)
学生代码实现基本正确,但存在以下问题:
1. 代码中max变量在比较时没有更新,应在if(count[i]>max)后添加max = count[i];,这是一个逻辑错误,扣2分。
2. 数组初始化int count[n] = 0;在C/C++中语法不正确,应为int count[n] = {0};,但考虑到可能是识别错误,不扣分。
3. 代码逻辑清晰,注释恰当,基本实现了算法思想。
综合扣2分,得5分。

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

题目总分:3+5+2=10分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发