gpt4 book ai didi

C++,在数组中找到 3 个最大值,其中这些值之间的差异是参数之一

转载 作者:太空狗 更新时间:2023-10-29 21:35:46 26 4
gpt4 key购买 nike

我必须在真实数据数组中找到 3 个最大值。问题是这 3 个值必须随特定的最小值(即参数)而变化。这意味着如果我有一个包含 10 个元素的数组 {1,2,3,4,5,6,7,8,9,10} 这个数组中的 3 个最大值是 8,9,10 但是如果参数例如是“2”,这 3 个最大值必须至少变化大约“2”,所以在我的例子中,真正的最大值是 10、8、6。我相信程序的算法应该是这样的:

1) 找到 3 个最大值(循环)2)验证它们是否至少在参数方面有所不同2a) 如果是,返回这 3 个值2b) 如果不满足,返回循环,再次查找3个值,忽略这个不满足条件的值?

我无法想象此解决方案的真实 C++ 代码。任何人都可以给出如何做的建议吗?

最佳答案

比排序更简单的是简单地扫描数组 3 次。第一次,找到最大值。下一次,找到最大的数 <= (max - p)等

您是否研究过用于评估算法性能的大 O 表示法?

将排序和搜索的时间 (n * lg(2)n + n) 与搜索 3 次的时间 (3*n) 进行比较盈亏平衡表现发生在一个非常小的 n 值。

关于C++,在数组中找到 3 个最大值,其中这些值之间的差异是参数之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41514823/

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