Java:平衡二叉搜索树

时间:2010-08-02 18:58:22

标签: java api binary-tree

鉴于我最近(有点成功)的问题:

Algorithmic issue: determining "user sessions"

我非常确定干净利落地解决它的方法是使用平衡的二叉树(这将为问题提供 n log m 解决方案,谢天谢地, m <与 n 相比,/ em>会变得非常小,甚至很小,就像其中一个答案(某些伪代码附带的答案)暗示的那样。

我的问题很简单:默认的Java API是否有自平衡树?

如果没有,你知道这种树的任何实现(Apache,Google集合,任何东西)吗?

如果看起来不合适,那么开始实现这种平衡二叉树的最佳树是什么?

1 个答案:

答案 0 :(得分:4)

java.util.TreeSet是一个平衡的树实现。它通过在必要时修改树结构来保证O(logn)访问时间,因此它不会退化为列表。

主要问题是:您需要从该树中执行哪些操作以及TreeSet是否支持这些操作。