文章
75
粉丝
78
获赞
0
访问
4.2k

评分及理由
(1)得分及理由(满分4分)
得分:0分
理由:题目要求设计一个在时间和空间两方面都尽可能高效的算法。标准答案的思路是基于二分查找,时间复杂度为O(log₂n),空间复杂度为O(1)。学生作答的第一部分(第1次识别结果)提出的基本设计思想是“合并两个有序序列,然后取中位数”,这是一种O(n)时间、O(n)空间的朴素方法,不符合题目“尽可能高效”的要求,因此设计思想不正确。第二部分(第2次识别结果)没有给出单独的设计思想描述,仅给出了代码。因此,本部分不得分。
(2)得分及理由(满分9分)
得分:2分
理由:学生提供了代码实现。虽然算法整体思路与高效要求不符,但代码(以第2次识别结果为准)能够正确地将两个升序序列合并,并返回合并后序列的中位数(根据题目定义,长度为L的升序序列中位数是第⌈L/2⌉个位置,对于长度为2n的序列,下标应为(2n-1)/2,代码中`return c[(2 * n - 1) / 2];`是正确的)。代码逻辑基本正确,能够实现功能。但是,由于算法本身不是题目要求的高效算法(二分法),因此不能给满分。考虑到代码实现了基本功能,给予部分分数。扣分点:算法未达到高效要求,核心逻辑与题目最优解不符。
(3)得分及理由(满分2分)
得分:2分
理由:学生正确分析了自己所实现算法的时间复杂度O(n)和空间复杂度O(n)。这与代码的实现是一致的,因此本部分得满分。
题目总分:0+2+2=4分
登录后发布评论
暂无评论,来抢沙发