文章
161
粉丝
0
获赞
0
访问
20.2k
(1)-10 10 11 19 25 25
(2)n(n-1)/2
(3)不是。if (a[i] < a[j]) count[j]++;改为if (a[i] <= a[j]) count[j]++;
评分及理由
(1)得分及理由(满分2分)
学生答案:-10 10 11 19 25 25。该答案与标准答案一致,正确计算了count数组并得到排序结果。得2分。
(2)得分及理由(满分2分)
学生答案:n(n-1)/2。该答案正确,因为算法中两层循环的比较次数为等差数列求和,即(n-1)+(n-2)+...+1 = n(n-1)/2。得2分。
(3)得分及理由(满分4分)
学生答案:不是。修改为if (a[i] <= a[j]) count[j]++;。学生正确指出算法不稳定(因为原代码在相等时增加count[i],导致相同元素中前面的count值更大,排序后位置靠后),且修改方法正确(将条件改为<=,使相等时增加count[j],从而保持原始顺序)。但学生未完整写出修改后的else分支(标准答案中else分支可省略,但需注意逻辑完整性),不过核心修改正确。扣1分(因未完全严格表述,但思路正确)。得3分。
题目总分:2+2+3=7分
登录后发布评论
暂无评论,来抢沙发