文章
37
粉丝
0
获赞
7
访问
3.6k
(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的内容为[-10, 10, 11, 19, 25, 25],与标准答案一致。
(2)得分及理由(满分2分)
得分:2分
理由:学生正确回答了比较次数为(n*(n-1))/2次,与标准答案一致。
(3)得分及理由(满分4分)
得分:4分
理由:学生正确判断了算法不稳定,并给出了正确的修改方案,即将if条件改为a[i] <= a[j],与标准答案一致。
题目总分:2+2+4=8分
登录后发布评论
暂无评论,来抢沙发