你何时会重新连接一个链表?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你何时会重新连接一个链表?相关的知识,希望对你有一定的参考价值。

当在链接哈希表中插入时,你什么时候重新进行?当alpha = 1时重新散列会更好吗? (alpha =存储的元素数/散列表的大小)

答案

使用链接时,通常需要在任何存储桶包含超过一定数量的项目时调整大小。例如,您可能认为存储桶最多可包含5个项目。第一次将第六个项目插入到存储桶中时,会重新调整表格的大小。

或者,您可能认为理想数字是10或3.由您决定如何平衡检索性能和调整大小时间。您的存储桶大小越小,平均查找速度就越快,但您必须更频繁地调整表的大小。使用更大的存储桶大小,您不必经常调整大小,但平均查找时间会更长。

桶大小为10的最差情况查找时间将比桶大小为2慢5倍。但它仍然比列表的顺序扫描快得多,并且您可以将数量减少5倍有时候你需要重新哈希。您应该为您的应用试验最佳铲斗尺寸。

使用较大的存储桶大小可以改善查找时间的一件事是,在查找时,将刚刚引用的项目移动到其存储桶中的列表头部。这里的理论是,有些项目比其他项目更频繁地查找,所以如果你总是将最近引用的项目移动到列表的头部,那么你更有可能更快地找到它。如果统一引用项目,则此优化不会有任何好处。

通过链接,您可以获得150%或200%的负载因子的良好性能;有时甚至更高。与重新散列相反,重新散列在负载系数或70%或75%时开始快速降级。

以上是关于你何时会重新连接一个链表?的主要内容,如果未能解决你的问题,请参考以下文章

为啥网络库无法检测到何时在 Swift Ios 中重新连接了互联网

Android webview如何检测何时重新加载

何时使用虚拟内存(Windows)?

链表前哨节点,以避免将指针重新分配给第一个节点

重新连接 websocket rxjs

id索引更改怎么重新抽取索引内容