文章

180

粉丝

0

获赞

0

访问

18.1k

头像
2011年(408)计算机学科专业基础综合试题 - 第42题回答
数据结构
发布于2025年11月19日 18:21
阅读数 85


评分及理由

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

得分:0分

理由:学生的基本设计思想是采用归并排序将两个有序数组合并成一个大的有序数组,然后直接取第n个元素作为中位数。这种方法虽然能得到正确结果,但题目要求"在时间和空间两方面都尽可能高效的算法",而归并方法的时间复杂度为O(n),空间复杂度为O(n),没有达到最优。标准答案采用二分查找思想,时间复杂度为O(log₂n),空间复杂度为O(1),明显更优。学生的思路虽然正确但不够高效,不符合题目要求。

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

得分:3分

理由:

  • 代码实现了归并排序的思路,逻辑基本正确(+3分)
  • 但存在多个严重错误:
    • merge函数中malloc分配空间大小错误:`sizeof(int)`应该为`(m+n)*sizeof(int)`(-3分)
    • func函数中`int C[2n];`语法错误,应该是`int *C`(-2分)
    • 函数返回类型不一致:merge返回int*,但func中赋值给int c(-1分)
  • 代码虽然能实现功能,但存在编译错误和内存分配错误

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

得分:2分

理由:学生正确分析了归并算法的时间复杂度O(n)和空间复杂度O(n),分析准确。

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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发