文章

55

粉丝

0

获赞

2

访问

17.8k

头像
2016年(408)计算机学科专业基础综合试题 - 第43题回答
数据结构
发布于2025年12月1日 18:31
阅读数 305


评分及理由

(1)得分及理由(满分4分)

得分:2分

理由:学生的基本设计思想是“将A1和A2合并后排序,然后按中间位置划分”,这与题目要求不符。题目要求的是将给定的一个集合A划分为两个子集,而学生假设A已经分成了A1和A2,这是对题意的误解。但思路中“排序后按中间值划分”在逻辑上能间接达到“|n1-n2|最小且|S1-S2|最大”的目标(因为排序后取前一半最小值和后一半最大值,差值自然最大),所以给部分分数。核心错误在于没有理解输入是单个集合A,而不是已经分好的两个子集。

(2)得分及理由(满分9分)

得分:4分

理由:学生的代码实现了快速排序,但存在以下问题:
1. 代码基于错误的假设(A1和A2已存在),没有实现从原始集合A进行划分的算法。
2. 快速排序的划分函数huafen在第二次识别中缺少A[L] = mid;的恢复步骤(第一次识别中有),这是一个逻辑错误,但可能为识别遗漏,根据“误写不扣分”原则,此处不额外扣分。
3. 代码整体结构是完整的排序和划分,但未满足题目“尽可能高效”的要求(应采用类似快速选择的方法,平均O(n))。
给予4分是因为代码实现了排序和划分的基本逻辑,但整体算法设计不符合题意。

(3)得分及理由(满分2分)

得分:1分

理由:学生给出的时间复杂度O(nlog₂n)和空间复杂度O(n)对于其实现的排序算法是正确的,但并非题目要求的最优复杂度。标准答案要求平均O(n)和O(1),因此扣1分。

题目总分:2+4+1=7分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发