文章

183

粉丝

0

获赞

1

访问

60.5k

头像
2019年(408)计算机学科专业基础综合试题 - 第41题回答
数据结构
发布于2025年11月17日 16:23
阅读数 276


评分及理由

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

得分:0分

理由:学生的基本设计思想存在逻辑错误。题目要求空间复杂度为O(1)且时间上尽可能高效,而学生提出的方法是通过双重循环每次找到倒数第i个结点插入到第i个结点后面,这种方法的时间复杂度为O(n²),不符合题目"时间上尽可能高效"的要求。标准答案采用的是寻找中点、反转后半段、合并链表的三步法,时间复杂度为O(n)。学生的思路虽然能实现重排列,但效率低下,不符合题目要求。

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

得分:2分

理由:学生的代码实现存在多处逻辑错误:

  1. 代码语法错误:NODE *p = L->next; *m = L; 应为NODE *p = L->next, *m = L;
  2. 内层循环逻辑错误:for循环中m = m->next会导致外层循环的m指针被修改
  3. 指针操作错误:m->next = NULL会破坏链表结构
  4. 指针赋值错误:m = p->next; q; 语法错误
  5. 算法逻辑:双重循环的时间复杂度为O(n²),不符合高效要求

给予2分是因为代码基本框架正确,能够理解需要将链表重新排列,但具体实现方法错误。

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

得分:1分

理由:学生正确分析出自己算法的时间复杂度为O(n²),但未能给出符合题目要求的高效算法的时间复杂度分析。考虑到学生对自己的算法复杂度有正确认识,给予1分。

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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发