文章

297

粉丝

0

获赞

1

访问

180.7k

头像
2013年计算机学科专业基础综合试题 - 第41题回答
数据结构
发布于2025年9月22日 20:02
阅读数 531


评分及理由

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

学生答案的基本设计思想是:先排序,然后取中位数作为候选主元素,再统计该候选元素的出现次数是否超过一半。这个思路是正确的,因为如果存在主元素,排序后它一定会占据中间位置。因此,该部分可得满分4分。

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

学生尝试用代码实现了快速排序的分区函数(huafen)和一个查找函数(Find),但代码存在多处逻辑错误:

  • huafen函数缺少循环结束的大括号,逻辑不完整。
  • Find函数中变量i未初始化就被使用(i=0),但后面又用i%2判断,逻辑混乱。
  • 在判断中位数索引时,使用了未定义的变量j(应该是i)。
  • 统计次数时,循环条件写错(i<n应为j<n),且比较对象A[j]和A[i]不合理。
  • 返回值类型为Bool(应为bool或int),且返回1或0不符合题目要求(应返回主元素或-1)。

由于代码存在多处逻辑错误,未能正确实现算法功能,因此扣分较多。根据评分标准,酌情给予2分。

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

学生给出的时间复杂度O(logn)和空间复杂度O(n)不准确:

  • 快速排序的时间复杂度为O(nlogn),统计次数为O(n),总时间复杂度应为O(nlogn)。
  • 空间复杂度取决于排序算法,快速排序的递归栈空间复杂度为O(logn)(平均情况),但学生写的是O(n),不完全正确。

因此,该部分扣1分,得1分。

题目总分:4+2+1=7分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发