鉴于我最近(有点成功)的问题:
Algorithmic issue: determining "user sessions"
我非常确定干净利落地解决它的方法是使用平衡的二叉树(这将为问题提供 n log m 解决方案,谢天谢地, m <与 n 相比,/ em>会变得非常小,甚至很小,就像其中一个答案(某些伪代码附带的答案)暗示的那样。
我的问题很简单:默认的Java API是否有自平衡树?
如果没有,你知道这种树的任何实现(Apache,Google集合,任何东西)吗?
如果看起来不合适,那么开始实现这种平衡二叉树的最佳树是什么?
答案 0 :(得分:4)
java.util.TreeSet
是一个平衡的树实现。它通过在必要时修改树结构来保证O(logn)访问时间,因此它不会退化为列表。
主要问题是:您需要从该树中执行哪些操作以及TreeSet
是否支持这些操作。