文章
188
粉丝
0
获赞
0
访问
55.1k

评分及理由
(1)得分及理由(满分5分)
学生答案描述了使用大小为10的大根堆来查找最小的10个数的算法思想:先将前10个元素建堆,然后遍历剩余元素,若当前元素小于堆顶(最大值),则替换堆顶并调整堆。这一思路与标准答案中的方法二(大根堆思想)完全一致,且描述清晰。因此,本小题得满分5分。
(2)得分及理由(满分5分)
学生答案给出的时间复杂度为O(nlog10),空间复杂度为O(10)。
时间复杂度分析:建大小为10的堆为常数时间O(1)。后续遍历n-10个元素,每次与堆顶比较为O(1),若需要替换并调整堆,调整操作的时间复杂度为O(log10)。因此,总时间复杂度为O(n * log10) = O(n),因为log10是常数。学生写作O(nlog10)在渐进意义上等价于O(n),但严格写法应为O(n)或O(nlogk),其中k=10。考虑到这是对常数规模堆的操作,且核心思想正确,此处不扣分。
空间复杂度O(10)即O(1),正确。
因此,本小题得满分5分。
题目总分:5+5=10分
登录后发布评论
暂无评论,来抢沙发