这个流程图正确吗?问题要求将两个最小的数字存储在列表中

问题描述 投票:0回答:1

我正在参加在线课程,并且正在寻求流程图作业方面的帮助。我得到了 66% 的分数,这表明我可能犯了一个错误。我相信我的答案是正确的,尽管我可能没有使用最有效的方法。有人可以审查我的工作并指出任何错误(如果有)吗?感谢您的时间和考虑。

提示: 现在,绘制一个算法的流程图(如下所述),该算法将找到集合中的两个最小值。您可以假设该集合至少有两个值,并且所有值都是不同的。

该算法的工作原理是遍历集合并跟踪迄今为止看到的两个最小值:

初始化到目前为止的两个最小值作为列表的前两个元素

对于列表中的每个剩余值:如果该值小于迄今为止两个最小值中的任何一个,则替换两个中较大的值

有几种方法可以表示迄今为止看到的两个最小值,但对于此分配,请使用以下方法:

将“min1”设置为集合的第一个值,将“min2”设置为第二个值

接下来,查看集合中每个剩余的元素:

如果元素小于“min1”且“min1”小于“min2”,

然后将“min2”设置为该元素的值

否则,如果元素小于“min1”但“min1”大于“min2”,

然后将“min1”设置为该元素的值

否则,如果元素大于“min1”且小于“min2”,

然后将“min2”设置为该元素的值

检查完所有元素后,输出“min1”和“min2”,其中包含两个最小值The Flowchart

我附上了流程图。这是我第一次制作,所以任何帮助将不胜感激。

algorithm sorting flowchart
1个回答
0
投票

一些问题:

  • 主要问题是流程图缺少箭头:它没有定义最后一次测试时要做什么(“item>min1 AND item

  • 短语“设置...到...”以相反的含义使用。作业以正确的方式使用这个短语,例如 “将“min2”设置为该元素的值”,但在流程图中,您可以使用它,例如 “将 item 设置为 min2”。虽然我明白你的意思,但明确作业的方向很重要,通常的做法是首先提到作业的目标,然后提到要分配的。因此,在您的流程图中,它实际上应该是“将 min2 设置为 item”,或者更好的是,使用箭头,例如“min2 ← item”。

  • 流程图对空列表进行了测试。由于列表中至少有两项,因此需要注意以下几点:

    • 如果您不包含 is-empty 测试,则可以很好地表明您已仔细阅读作业。我不认为包括这个不必要的测试对你的分数不会有什么害处。

    • 包含它后,奇怪的是(双关语),当列表只有一项时没有测试。如果列表中的项目确实少于两项,则流程图不正确。

© www.soinside.com 2019 - 2024. All rights reserved.