文章
252
粉丝
0
获赞
0
访问
18.0k
1):b中数组的内容是{-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分)
学生答案正确,b数组内容为{-10, 10, 11, 19, 25, 25},与标准答案一致。得2分。
(2)得分及理由(满分2分)
学生答案正确,比较次数为n(n-1)/2,与标准答案一致。得2分。
(3)得分及理由(满分4分)
学生正确指出算法不稳定,并提出了正确的修改方案:将条件判断改为if (a[i] <= a[j]) count[j]++;。这与标准答案一致。但学生没有详细解释不稳定的原因(原代码在相等时增加count[i],导致相同元素中前面的count值更大,从而在排序后可能被放到后面),且修改方案虽然正确但未完整处理else分支(标准答案中明确说明修改后只需一个条件判断,但学生答案中隐含了else分支的处理)。由于修改方案核心正确,扣1分(理由:解释不充分)。得3分。
题目总分:2+2+3=7分
登录后发布评论
暂无评论,来抢沙发