gpt4 book ai didi

c# - 从数组中查找相等或最接近的较小值

转载 作者:行者123 更新时间:2023-11-30 14:34:54 25 4
gpt4 key购买 nike

假设我有这个数组(它实际上是 255 长,值最大为 int.MaxValue):

int[] lows = {0,9,0,0,5,0,0,8,4,1,3,0,0,0,0};

我想从这个数组中获取一个值等于小于我的数字的索引。

number = 7 -> index = 4
number = 2 -> index = 9
number = 8 -> index = 7
number = 9 -> index = 1

找到它的最快方法是什么?

到目前为止,我使用的是线性搜索,但事实证明这对我的需要来说效率太低,因为即使这个数组只有 255 长,值也会被搜索几百万次。

我需要与 Java 中使用的 TreeSet.floor(E) 相同的东西。我想使用 Dictionary,但我不知道它是否能像我需要的那样找到第一个更小或相等的值。

最佳答案

对数组进行排序,然后进行二进制搜索以查找值。

参见:

https://en.wikipedia.org/wiki/Binary_search

Array.BinarySearch Method

关于c# - 从数组中查找相等或最接近的较小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13215065/

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