gpt4 book ai didi

memory - 为什么哈希表比其他数据结构占用更多内存?

转载 作者:行者123 更新时间:2023-12-03 20:21:07 25 4
gpt4 key购买 nike

我一直在阅读有关 hash tables 的信息、字典等。我看过的所有文献和视频都暗示哈希表具有空间/时间权衡属性。

我很难理解为什么哈希表比具有相同总元素(值)数量的数组或列表占用更多空间?它与实际存储散列 key 有关吗?

据我了解,在基本术语中,哈希表采用一个键标识符(比如某个字符串),通过一些哈希函数将它传递给数组或其他数据结构的索引。除了将对象(值)存储在数组或表中的明显内存使用之外,为什么哈希表会占用更多空间?我觉得我错过了一些明显的东西......

最佳答案

就像你说的,这完全是关于查找时间和空间之间的权衡。底层数据结构的空间(桶)数量越多,散列函数可能存储每个项目的位置数量就越大,因此发生冲突的机会(因此比恒定时间性能更差)降低了。然而,拥有更多的桶显然意味着需要更多的空间。项目数与桶数之比称为负载因子,在此问题中有更详细的解释:What is the significance of load factor in HashMap?

minimal perfect hash function 的情况下,您可以实现在 n 个存储桶中存储 n 个项目(负载因子为 1)的 O(1) 性能。

关于memory - 为什么哈希表比其他数据结构占用更多内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22502412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com