文章

225

粉丝

0

获赞

1

访问

11.1k

头像
2016年计算机学科专业基础综合试题 - 第43题回答
数据结构
发布于2025年10月21日 11:40
阅读数 41


评分及理由

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

得分:2分

理由:学生的基本设计思想是通过快速排序将整个数组排序,然后取前一半和后一半分别作为两个子集。这种方法确实能够满足题目要求(|n1-n2|最小且|S1-S2|最大),因为排序后最小的⌊n/2⌋个元素放在A2,最大的⌈n/2⌉个元素放在A1。但是,题目要求"尽可能高效的划分算法",而标准答案使用的是基于快速选择思想(类似快速排序的划分)的O(n)算法,学生的全排序方法时间复杂度为O(nlogn),效率不够高。因此扣2分。

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

得分:6分

理由:学生的代码实现正确地完成了快速排序和子集划分,逻辑上是正确的,能够计算出正确的S1-S2值。但是存在以下问题:

  • 代码中S1和S2的计算与标准答案相反(学生将前n/2个元素和赋给S2,后n/2个元素和赋给S1),但这不影响最终返回值的绝对值,只是符号相反,不扣分
  • 主要问题是使用了全排序而非更高效的选择算法,效率不够优化,扣3分
  • 代码结构清晰,划分函数和排序函数实现正确

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

得分:2分

理由:学生正确分析了算法的时间复杂度为O(nlogn)和空间复杂度为O(n),分析准确完整,给满分。

题目总分:2+6+2=10分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发