文章
102
粉丝
0
获赞
3
访问
5.7k


评分及理由
(1)得分及理由(满分4分)
得分:1分
理由:学生使用了计数排序的思路来寻找中位数,这与标准答案的快速选择思想不同。虽然思路可行,但存在以下问题:①计数排序要求元素范围已知且较小,题目未给出此条件;②算法描述中"count[n]"用法错误,应该是根据元素值范围分配数组;③对中位数的处理逻辑混乱,特别是对等于中位数的元素分配规则表述不清。由于基本思路与题目要求的划分算法有较大偏差,扣3分。
(2)得分及理由(满分9分)
得分:2分
理由:代码实现存在多处严重错误:①"int count[n] = 0"语法错误,不能对整个数组初始化为0;②"int count - 1 = 0"变量名不合法;③"temp += temp + count[i]"逻辑错误,应该是"temp = temp + count[i]";④中位数mid应该赋值为i而不是temp;⑤最后返回a[0]没有意义,应该返回两个子集和的差值;⑥没有计算S1和S2。虽然代码框架体现了划分思想,但由于核心逻辑错误过多,扣7分。
(3)得分及理由(满分2分)
得分:1分
理由:学生正确分析了时间复杂度O(n)和空间复杂度O(n),但未说明这是基于计数排序的复杂度分析。与标准答案的O(1)空间复杂度相比,学生的算法空间开销较大,扣1分。
题目总分:1+2+1=4分
登录后发布评论
暂无评论,来抢沙发