gpt4 book ai didi

java - 使用 "tournament"(Java) 从数组中获取最大的 n 个数字

转载 作者:行者123 更新时间:2023-12-02 05:00:32 28 4
gpt4 key购买 nike

我有一个数组,例如长度为 10:

Population = {1,3,4,2,7,-2,0,8,9,5}.

我生成两个 0-9 之间的随机数(例如 4 和 6)。然后我检查第四个和第六个元素 (7, 0),“获胜者”是较大的数字。因此,7 名进入获胜者数组(总共 5 名获胜者):

Winners = {7, ...}

每次我想将剩余的两个号码(包括输者)配对,并将赢者放入赢者数组中。

最简单的方法是使用大小为 n 的非固定大小数组,并从“population”中删除获胜者并将其放入“winners”中。然后我可以生成 1 到 n-1 之间的两个随机数并继续该过程。

如何在 Java 中使用固定大小的数组来做到这一点?我如何从数组中选择两个号码,而忽略任何“获胜者”号码?

最佳答案

如果您想使用固定大小的数组,那么每次选择获胜者时(比如说 ith position ),您都必须迭代数组并移动索引为 j=i+1 的所有元素。至j然后生成 0 to n=n-1 之间的下一个随机数.

虽然我建议在这里使用简单的数据结构是 ArrayList 。您可以动态地从中删除元素并使用它的 size()作为计算随机数的上限。

关于java - 使用 "tournament"(Java) 从数组中获取最大的 n 个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28326956/

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