编程语言
首页 > 编程语言> > java-两个AVL树的替代

java-两个AVL树的替代

作者:互联网

目前,我需要以两种不同的方式对数据进行排序,从时间和空间复杂度PoV来看,除了维护两棵树(一棵按日期排序,一棵按ID号排序)之外,还有其他选择吗?我需要能够按数据顺序返回列表,并按ID返回单个用户,并且我不希望不必遍历甚至更糟,遍历然后为数组返回排序.

非常感谢任何见解或帮助,谢谢!

解决方法:

您可以在一棵树中执行此操作,但是仅在该日期上可以获得O(logN)性能.由于直接顺序是不确定的,因此直接获取ID的方式始终为O(N)(即遍历整棵树以找到精确匹配项).

如果您的ID可以基于您需要的日期(我的意思是说ID可以基于日期生成),则可以将O(N)的时间复杂度降低为O(logN M),其中M-是一个特定日期的ID的子集.

因此,根据您的响应时间和内存要求,您可以仅保留一棵树,或将其与ID的HashMap配对.

标签:avl-tree,data-storage,performance,java
来源: https://codeday.me/bug/20191111/2021403.html