【发布时间】:2013-10-03 11:19:09
【问题描述】:
我正在尝试寻找一种数据结构以在我的 Java 项目中使用。我正在尝试做的是从一组数字中获取低于任意数字的下一个最大值,或者如果不存在这样的数字则通知。
示例 1) 我的任意数字是 7.0。 {3.1、6.0、7.13131313、8.0} 我需要从这组中得到的数字是 6.0。
示例 2) 我的任意数字是 1.0。 {2.0, 3.5555, 999.0} 集合中不存在下一个最高的数字,所以我需要知道它不存在。
我能想到的最好的方法是通过数组进行索引和比较,然后在我遍历任意数字后返回 1 步。在最坏的情况下,虽然我的时间复杂度是 O(n)。有没有更好的办法?
【问题讨论】:
-
为什么不使用二分搜索?
-
维护一个搜索树,如果没有,实现一个前置函数。
标签: java algorithm data-structures time-complexity