AVL树与数组中的二叉搜索(仅用于搜索,不插入或删除),当预先知道要存储的元素数量时



当我知道要预先存储的元素数量并且大小固定时,我应该使用 AVL 树而不是在数组中使用二叉搜索的任何原因。也只执行搜索操作?? 在搜索方面,是否有任何其他数据结构或算法比它们更好?

通常,如果将数组存储在连续内存块中,并且 AVL 树将使用节点对象的稀疏集合,则二叉搜索解决方案的性能会更好,这会产生较差的空间缓存局部性。

根据数据类型,您可以使用提供O(loglogn)性能的插值搜索 - 尽管这会将最坏情况的时间复杂度增加到O(n)。如果数据服从均匀的分布,则使用此方法,因此猜测指数不是基于中间位置,而是基于预期位置。另一种选择是拥有通常O(1)获取的哈希表,如果正确创建,无论冲突如何,使用 Cuckoo 哈希将保证O(1)

最新更新