Wikipedia定义的线性散列的优势在于,调整大小可以递增地进行,因为存储桶以循环方式被一一拆分,从而为调整大小的插入保留了固定的摊销时间复杂度。因此,他们的想法是遍历数组,重新使用已经遍历的元素作为线性哈希的存储。
虽然我不是线性哈希专家,但我看不出任何方法可以将哈希表放入数组中。当然,要使用线性哈希存储n个元素,可以使用n个存储桶。但是,存储桶中的元素数量是不受限制的,因此您需要像链表那样的东西来实现每个存储桶,这会增加指针的O(n)内存。
这样,该算法不会比普通算法产生更好的渐近空间复杂度
HashSet。但是,它确实将内存消耗减少了一个恒定的因素。
它的时间复杂度与普通的相当
HashSet。
编辑:在我看来,这个答案被忽略了(没有投票,没有评论)。它没有用吗?请发表评论,以便我知道需要改进的地方。



