文章
194
粉丝
0
获赞
0
访问
28.0k

评分及理由
(1)得分及理由(满分3分)
学生给出的基本设计思想是“使用3层循环,得出的解与之前保存的最小值作比较,得到最小值后,输出”。这描述的是暴力枚举所有三元组的方法。虽然思路简单,但符合题目要求“设计一个尽可能高效的算法”中的基础解法,且思想表述清晰。因此,本部分得3分。
(2)得分及理由(满分8分)
学生提供了C语言代码,实现了三层循环遍历所有三元组,并计算距离D=|a-b|+|b-c|+|c-a|,同时更新最小值。代码逻辑正确,能够正确计算最小距离。但存在以下小问题:
1. 使用了条件运算符计算绝对值,虽然正确,但不如标准库的abs函数简洁(但这不是错误)。
2. 变量定义较多,但无实质影响。
3. 代码中“MAX_INT”应为“INT_MAX”,但根据上下文可判断为笔误或识别错误,且不影响核心逻辑,不扣分。
因此,本部分代码实现正确,得8分。
(3)得分及理由(满分2分)
学生正确分析了时间复杂度为O(n³)和空间复杂度为O(1),与暴力法一致。本部分得2分。
题目总分:3+8+2=13分
登录后发布评论
暂无评论,来抢沙发