我对这样一个问题很感兴趣:正如我们所知,红黑树可以有效地实现 successor (该条目的第一个元素)和前身,即在日志时间。 在 Java文档中写道,为了提供诸如后继的操作,您可以仅使用subSet,然后在 subSet 中使用最少的元素。但它是日志时间吗?如果是, subSet 的实现是什么?(我对算法很感兴趣,所以它可能只是几个字,不是必需的代码)
感谢。
答案 0 :(得分:5)
我只是阅读代码以了解它是如何工作的。
我相信subSet是O(log N)更自然的方法是使用专门设计的lower(E)
和higher(E)
方法。
http://docs.oracle.com/javase/7/docs/api/java/util/NavigableSet.html