文章

118

粉丝

0

获赞

0

访问

48.0k

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


评分及理由

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

得分:2分

理由:学生的基本设计思想是先对数组进行快速排序,然后按n/2划分两个子集。这种方法能够满足|n1-n2|最小且|S1-S2|最大的要求,因为排序后最小的n/2个元素在A1,其余在A2。但这种方法需要对全部元素进行排序,时间复杂度为O(nlogn),而题目要求"尽可能高效的划分算法",标准答案采用类似快速选择的方法只需O(n)时间复杂度。因此扣2分,没有达到最优效率。

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

得分:6分

理由:学生实现了基于快速排序的划分算法,代码逻辑基本正确,能够正确计算n1、n2和S1、S2,满足题目要求。但存在以下问题:

  • 快速排序函数QS中存在逻辑错误:在partition过程中,变量i、j与low、high混用,可能导致死循环或错误结果(扣2分)
  • 算法效率不是最优,没有使用类似快速选择的方法(扣1分)
  • 函数没有返回值,只是输出结果,不符合题目要求(扣1分)

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

得分:1分

理由:学生正确分析了快速排序的时间复杂度O(nlogn),但空间复杂度分析错误。递归实现的快速排序在最坏情况下空间复杂度为O(n),平均情况下为O(logn),不是O(1)。扣1分。

题目总分:2+6+1=9分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发