gpt4 book ai didi

c++ - 哪种方法可以更好地找到最大数量?

转载 作者:行者123 更新时间:2023-11-30 18:53:37 26 4
gpt4 key购买 nike

在 C/C++ 中编写程序查找最大 4 个数字的更好方法是:

  1. 使用第五个变量并将其与所有输入进行比较
  2. 使用 max() 函数
  3. 并使用 if 比较输入

或者建议任何其他方法,如果它有更好的方法(在空间和时间复杂性方面)来解决问题

如果变量超过 4 个,相同的算法方法仍然是最好的吗?

最佳答案

对于大量元素,标准库具有 std::max_element 算法,可以对 N 进行 max(N-1, 0) 比较 元素,这是理论上的最小值,即使是 4 个元素

实际上,它会像方法 1 一样循环遍历所有元素,但如果 N 是2(你的方法2)。某些优化编译器甚至可能展开循环并生成复杂的 if 语句链(您的方法 3)。

在评论中,@NathanOliver 给出了 C++11 风格的解决方案 max({a,b,c,d}) (仅适用于 constexpr 上下文)。但在 C++1z 中,std::max_element 也将变为 constexpr,因此它将成为完全通用的解决方案,无论大小、运行时还是编译时。

TL;DR:不要想太多,使用标准库,它可以完成最少的工作。

关于c++ - 哪种方法可以更好地找到最大数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32638421/

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