C++ 如何正确计算使用单独链接的哈希表的负载因子?

C++ 如何正确计算使用单独链接的哈希表的负载因子?,c++,hashtable,hash-collision,load-factor,C++,Hashtable,Hash Collision,Load Factor,我正在使用散列表,它们使用单独的链接作为冲突解决技术 我知道一般公式是N/table_length,其中N是表中当前的项目数 我有点被分母搞糊涂了。是数组的大小+链式元素的数量,还是仅仅是数组的大小?的目的是了解在表中添加新元素时(平均)需要冲突解决的可能性。当一个新元素被分配一个已经有元素的bucket时,就会发生冲突。给定的桶已经有元素的可能性取决于容器中有多少元素 load factor=#元素数/#桶数 (在您的术语中:表中当前的项数除以数组的大小。)的目的是了解如果向表中添加新元素,您

我正在使用散列表,它们使用单独的链接作为冲突解决技术

我知道一般公式是N/table_length,其中N是表中当前的项目数

我有点被分母搞糊涂了。是数组的大小+链式元素的数量,还是仅仅是数组的大小?

的目的是了解在表中添加新元素时(平均)需要冲突解决的可能性。当一个新元素被分配一个已经有元素的bucket时,就会发生冲突。给定的桶已经有元素的可能性取决于容器中有多少元素

load factor=#元素数/#桶数

(在您的术语中:表中当前的项数除以数组的大小。)

的目的是了解如果向表中添加新元素,您需要冲突解决的可能性(平均值)。当一个新元素被分配一个已经有元素的bucket时,就会发生冲突。给定的桶已经有元素的可能性取决于容器中有多少元素

load factor=#元素数/#桶数


(在您的术语中:表中当前项目的数量除以数组的大小。)

正确的负载系数不是至少部分取决于品味吗?i、 e.如果你想浪费更少的内存,你应该指定一个更高的负载因子,但是如果你认为更快的查找时间更重要,你应该指定一个更低的负载因子。是的,一个人选择的负载因子是一个品味的问题,但我不认为这适用于如何正确计算它。正确的负载系数不是至少部分地取决于味道吗?i、 e.如果你想浪费更少的内存,你应该指定一个更高的负载因子,但是如果你认为更快的查找时间更重要,你应该指定一个更低的负载因子。是的,一个人选择的负载因子是一个品味的问题,但我不认为这适用于如何正确计算它。为什么我们不需要考虑链接项目?如果我们不这样做,那么负载系数可以超过1,对吗?@AdamG是的,负载系数可以超过1。值大于1表示哈希表无法再以理想性能运行。(理想的性能发生在没有冲突的情况下。负载系数超过1表明冲突确实发生了。)为什么我们不需要考虑链接项?如果我们不这样做,那么负载系数可以超过1,对吗?@AdamG是的,负载系数可以超过1。值大于1表示哈希表无法再以理想性能运行。(理想的性能发生在没有碰撞的情况下。负载系数超过1表示碰撞确实发生过。)