文章

238

粉丝

0

获赞

3

访问

32.8k

头像
2016年计算机学科专业基础综合试题 - 第43题回答
数据结构
发布于2025年9月22日 16:51
阅读数 60


评分及理由

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

学生答案的基本设计思想是使用哈希表统计元素分布,然后根据统计结果将最小的n1个数放入A1,其余放入A2。这一思路虽然能够实现题目要求,但存在两个主要问题:首先,哈希表方法假设元素值在0到n-1之间,但题目中只说明是正整数,并未限定范围,因此哈希表大小可能不足或浪费;其次,该方法需要遍历所有元素并统计频率,然后按值大小累加,但实际元素可能分布不均匀,且该方法依赖于元素值的范围,通用性较差。标准答案采用快速选择的思想,基于枢轴划分,无需全排序,效率更高且更通用。因此,学生的设计思想虽然正确但不够高效和通用,扣2分。得分:2分。

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

学生代码使用哈希表实现,但存在以下逻辑错误:
1. 哈希表大小为n,但元素值可能大于等于n,导致数组越界(例如,如果元素值大于n-1,则hash[A[i]]会越界)。
2. 在累加S1和S2时,代码逻辑混乱。mid初始为n/2,但mid减去hash[i]后可能变为负数,后续处理中abs(mid)和条件判断不准确,无法正确分配元素数量。
3. 代码中使用了hash[i]来检查元素i是否存在,但i是索引而非实际元素值,这会导致错误(例如,如果元素值不在[0, n-1]范围内,则统计无效)。
4. 返回abs(S1-S2),但题目要求|S1-S2|最大,而该实现可能无法保证最大化差值,因为分配策略有缺陷。
由于这些逻辑错误,代码无法正确实现题目要求。但学生思路正确(即分配最小n1个数到A1),因此给予部分分数。扣5分。得分:4分。

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

学生给出的时间复杂度O(n)和空间复杂度O(n)在哈希表方法下是合理的,但基于上述错误,实际实现可能无法达到预期。由于复杂度分析正确,不扣分。得分:2分。

题目总分:2+4+2=8分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发