文章
37
粉丝
0
获赞
7
访问
3.5k
(1) 内容为[-10, 10, 11, 19, 25, 25]。
(2) 比较(n*(n-1)) / 2次。
(3) 是不稳定的
修改:
void cmpCountSort(int a[], int b[], int n) {
int i, j, *count;
count = (int *) malloc(sizeof(int) * n);
for (i = 0; i < n; i++) count[i] = 0;
for (i = 0; i < n - 1; i++)
for (j = i + 1; j < n; j++)
if (a[i] <= a[j]) count[j]++; // 这里if判断条件由a[i] < a[j]改为a[i] <= a[j]
else count[i]++;
for (i = 0; i < n; i++) b[count[i]]= a[i];
free(count);
}
评分及理由
(1)得分及理由(满分2分)
得分:2分
理由:学生的答案与标准答案一致,正确计算了排序后的数组b的内容。
(2)得分及理由(满分2分)
得分:2分
理由:学生的答案与标准答案一致,正确计算了元素之间的比较次数。
(3)得分及理由(满分4分)
得分:4分
理由:学生正确指出了算法的不稳定性,并给出了正确的修改方法,修改后的代码与标准答案一致。
题目总分:2+2+4=8分
登录后发布评论
暂无评论,来抢沙发