gpt4 book ai didi

algorithm - 采用 4 个输入并打印三个数字中最大/最佳之和的伪算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:33:23 25 4
gpt4 key购买 nike

我的伪代码作业需要一些帮助:输入 4 个数字并打印最大的 3 个数字的总和。

例如:输入:14、1、9、3输出:14+9+3 => 26

如何用上述任务的伪代码编写算法?

到目前为止,我已经做到了:

input a, b, c, d
declare h1, h2, h3
if(a>=b && a>=c && a>=d) h1 = a
if(b>=a && b>=c && b>=d) h2 = b
if(c>=a && c>=b && c>=d) h3 = c
if(d>=a && d>=b && d>=c) h4 = d
print h1+h2+h3

这有什么好处吗?

最佳答案

  1. 假设输入在数组 t 中。
  2. sum = t[0]
  3. min = t[0]
  4. 对于从 1 到 3 的 i,重复步骤 5 和 6:
  5. sum += t[i]
  6. if (min > t[i]) min = t[i]
  7. 返回 sum - min

您和 Brian 介绍的另一种方法归结为排序(对于 n=4,您可以像以前那样“手动”进行排序,但对于更大的 n,这不是一个好主意)然后求和。

我更喜欢上面显示的方法,因为它保证了线性时间复杂度,可以很好地扩展并且易于实现。它只通过输入数据一次,如果输入是一个一个地流式传输并且我们不想将输入存储在内存中(我们想“即时”进行),则可以使用它。如果对输入数据没有任何假设,排序可能比线性排序(可以是 nlogn)更昂贵。

关于algorithm - 采用 4 个输入并打印三个数字中最大/最佳之和的伪算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28836907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com