文章
118
粉丝
0
获赞
0
访问
48.0k

评分及理由
(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,满足题目要求。但存在以下问题:
(3)得分及理由(满分2分)
得分:1分
理由:学生正确分析了快速排序的时间复杂度O(nlogn),但空间复杂度分析错误。递归实现的快速排序在最坏情况下空间复杂度为O(n),平均情况下为O(logn),不是O(1)。扣1分。
题目总分:2+6+1=9分
登录后发布评论
暂无评论,来抢沙发