就内存而言,二叉搜索树与哈希表

时间:2018-12-15 22:43:07

标签: algorithm memory binary-search-tree hashtable

我在互联网上听到了很多不同的事情,包括有人明确指出与哈希表相比,BST需要更少的内存,因为哈希表一次获取的内存比当前所需的更多。

一个只能告诉我每种结构的优缺点,而仅就记忆而言。

1 个答案:

答案 0 :(得分:1)

二叉搜索树不过是一个链表,每个节点有2个指针。所需的内存顺序为O(n),即与其中存储的元素数相同。 另一方面,哈希映射通常实现为数组。因此,总有一些未使用的空间。在这里阅读有关如何在Java中实现哈希映射的信息:http://java-performance.info/memory-consumption-of-java-data-types-2/

  

HashMap构建在Map.Entry对象数组的顶部。的   实现可确保此数组长度始终等于   最小max(大小,容量)/ load_factor。的默认负载系数   HashMap为0.75,默认容量为16。负载系数指定   数组的哪一部分可以用于存储,并且是一个值   在0和1之间。负载系数越高,空间越小   被浪费了,但是HashMap由于速率增加而开始工作较慢   的碰撞。如果负载系数越小,则内存越大   浪费了,但是HashMap的性能由于较小而提高了   发生碰撞的可能性。