【问题标题】:Binary-search tree vs hash table in terms of memory就内存而言,二叉搜索树与哈希表
【发布时间】:2019-05-16 19:06:41
【问题描述】:

我在互联网上听到了不同的说法,包括有人明确指出与 hast 表相比,BST 需要更少的内存,因为哈希表一次获得的内存比他们目前需要的多。

谁能告诉我每种结构与其他结构相比的优缺点,仅在记忆方面。

【问题讨论】:

    标签: algorithm memory binary-search-tree hashtable


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2010-12-06
      • 2010-10-25
      • 2020-04-20
      • 2017-11-23
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 2014-05-24
      • 2011-05-06
      相关资源
      最近更新 更多