文章

313

粉丝

0

获赞

0

访问

34.9k

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


评分及理由

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

得分:2分

理由:学生答案的基本设计思想是“使用快速排序将A排为升序序列,然后分成两份”。这一思路可以满足题目要求(排序后取前⌊n/2⌋个元素作为A1,其余作为A2,能使|n1-n2|最小且|S1-S2|最大),因此思路正确。但答案没有进一步描述如何高效地实现划分(例如利用快速选择或类似快速排序的划分过程只找中位数而不完全排序),因此没有达到“尽可能高效”的更高要求。标准答案中强调基于枢轴划分、类似快速选择的思想,平均时间复杂度可达O(n),而学生的全排序思路是O(n log n)。由于题目要求“尽可能高效”,且标准答案给出了更优解法,此处扣2分。

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

得分:0分

理由:学生提供的代码只是一个快速排序的框架,且存在严重逻辑错误:

  1. 快速排序的实现是错误的:pivot 被直接取为下标中间值,没有进行分区(partition)操作,这样无法完成排序。
  2. 代码没有实现划分两个子集的功能,也没有计算S1和S2。
  3. 代码与题目要求的划分算法完全不符,没有返回差值,也没有体现划分过程。

因此,该部分答案不能得分。

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

得分:1分

理由:学生给出的时间复杂度O(n log₂n)和空间复杂度O(log₂n)是针对其描述的快速排序全排序算法,对于其描述的算法而言是正确的。但题目要求“尽可能高效”,而更优算法可以达到平均O(n)和O(1),因此学生的答案虽然自洽,但并非最优。考虑到其复杂度分析与其算法描述一致,给1分(满分2分)。

题目总分:2+0+1=3分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发