【发布时间】:2015-05-22 05:23:01
【问题描述】:
我知道他们在说什么预优化是万恶之源,但是我更想知道什么是最有效的方法。知识库再多一点,你知道吗?
基本上我有一个整数集合,如下所示:
final List<Integer> list = ImmutableList.of(1, 5, 10, 27, 57, 193);
现在我想找到最接近的数字,向下取整。例如,我有数字 192。所以这个列表的返回值将是“57”。如果数字是 58,同样适用。它只是找到下一个最小的数字。
目前我正在从末尾开始循环列表,使用for 然后返回列表的索引,这将是我想要的数字。我只是好奇是否有更有效的方法来做到这一点。
【问题讨论】:
-
列表排序了吗?这是为了一致的哈希吗?
-
您听说过快速排序吗?
-
据我所知,通过大 O 表示法,单个循环非常有效。只需返回减法的绝对值和 bam,最接近的数字索引。
-
Collections.binarySearch是要走的路。如果列表未排序,请先使用Collections.sort。 -
@SeçkinSavaşçı:如果您只需要一次号码,那并不是最快的。
标签: java