【发布时间】:2017-10-01 23:08:58
【问题描述】:
我有一个包含用户名和 ID 的用户数据库。这些是程序将处理的操作:
insert, delete (by username), search (by username), print (打印所有用户信息,按id排序)
前 3 个操作的时间复杂度不应超过 O(log n),对于打印,它应为 O(n)。应该使用平衡的 BST 来实施解决方案。
我解决问题的想法是必须有 2 个 BST,其中一个的关键是 id,另一个是 username。所以我们可以在 O(log n) 时间内通过它们的名称或 id 访问一个元素。但这会使内存空间和操作时间加倍。
有没有比我解释的更好的方式在O(log n) 时间内通过username 和id 访问元素?
【问题讨论】:
标签: algorithm data-structures binary-search-tree red-black-tree