文章
56
粉丝
0
获赞
0
访问
7.0k
评分及理由
(1)得分及理由(满分4分)
得分:4分
理由:学生的算法设计思想清晰,通过使用计数数组统计每个元素的出现次数,然后遍历计数数组查找出现次数超过n/2的元素。这种方法能够正确找出主元素,虽然与标准答案的摩尔投票法不同,但思路正确且可行,因此不扣分。
(2)得分及理由(满分7分)
得分:6分
理由:算法实现基本正确,但存在以下问题:
1. 函数声明语法错误("int func Cint A[]"应为"int func(int A[])"),但根据第二次识别结果已修正为正确语法,判断为识别错误,不扣分。
2. 代码中未释放动态分配的内存(malloc分配的内存),存在内存泄漏问题,这是一个逻辑错误,扣1分。
其他部分逻辑正确,包括数组初始化、计数统计和主元素判断都正确实现。
(3)得分及理由(满分2分)
得分:2分
理由:时间复杂度和空间复杂度分析正确。算法需要遍历数组两次,时间复杂度为O(n);使用了一个大小为n的辅助数组,空间复杂度为O(n)。分析准确无误。
题目总分:4+6+2=12分
登录后发布评论
暂无评论,来抢沙发