文章

110

粉丝

0

获赞

0

访问

7.5k

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


评分及理由

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

得分:2分

理由:学生的基本设计思想是使用快速排序将整个数组排序,然后从中间划分。这种方法能够满足题目要求(|n1-n2|最小且|S1-S2|最大),因为排序后前⌊n/2⌋个最小元素放在A1,其余放在A2。但是这种方法需要对整个数组进行完全排序,而标准答案使用的是基于快速选择的部分划分算法,只需要找到第⌊n/2⌋小的元素即可,效率更高。学生的思路虽然正确但不够高效,因此扣2分。

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

得分:6分

理由:

  • 学生实现了完整的快速排序算法,划分函数和递归排序函数基本正确
  • 在func函数中,通过排序后取前n/2个元素和后n/2个元素分别计算和,逻辑正确
  • 代码存在以下问题:
    • Qsort函数缺少返回类型(应该是void)
    • func函数缺少返回值(应该返回|S1-S2|)
    • 在第一个for循环前有"n₁ = 0, n₂ = 0;"的冗余赋值,但n1、n2的计数在循环中重新赋值
  • 由于实现了完整排序而非部分划分,算法效率不如标准答案

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

得分:2分

理由:学生正确分析了算法的时间复杂度为O(nlog₂n)和空间复杂度为O(log₂n),这与实现的完整快速排序算法相符。

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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发