java - 有效地从数组中获取落在某个范围内的元素

标签 java arrays algorithm

在 Java 中,如果我想从数组中获取落在特定范围内的元素,那么最有效的方法是什么?

例如

数组

A = [25,32,54,23,76,34];

我想得到

element between 45 and 55.

也就是元素:

54

那么获得它的最有效方法是什么?

最佳答案

如果您要重复搜索数组,那么最好的选择是对数组进行排序并使用二进制搜索来查找上下界。当分摊到足够多的搜索时,这将为您提供 O(log n) 性能。

如果它是一次性搜索,除了像其他人建议的那样扫描数组并将每个元素与下限/上限进行比较之外,你不能做得更好 - 这是 O(n)。

关于java - 有效地从数组中获取落在某个范围内的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13171245/

相关文章:

java - View 类监听并响应自己的组件是否是一种不好的形式

Java模拟键盘INT输入(Robot)

java - SAML - 解析服务提供商元数据并提取详细信息,例如签名证书和断言消费者端点

python - 删除 numba.lowering.LoweringError : Internal error

php 列表到表中

java - 当我编译时,我不断收到此错误消息 '.class' Expected for this line this.hand = Card[] hand;我不知道该怎么做才能改变它

java - 独特元素的数组?

c++ - 为什么数组不打印第一个元素?

c# - 为移动设备 (.NET) 在页面中排序框架( block )

arrays - 具有长度约束的最大子数组