据我所之,hash表的碰撞解决方案有链表和完美hash两种。
链表的缺点是最坏情况下o(n)的时间复杂度。 完美hash的缺点是需要动态分配空间,且最坏情况下空间复杂度是o(n*n)。
所以我引入红黑树来处理hash碰撞。 该方案对下面这种情况非常适合:
1 桶数量固定
2 最坏情况下o(ln n)的时间复杂度,o(n)的空间复杂度。
代码回头再贴上
链表的缺点是最坏情况下o(n)的时间复杂度。 完美hash的缺点是需要动态分配空间,且最坏情况下空间复杂度是o(n*n)。
所以我引入红黑树来处理hash碰撞。 该方案对下面这种情况非常适合:
1 桶数量固定
2 最坏情况下o(ln n)的时间复杂度,o(n)的空间复杂度。
代码回头再贴上
本文讨论了Hash表碰撞解决方法,包括链表和完美Hash的局限性,并引入红黑树作为改进方案,特别适合固定桶数场景,提供O(lnn)时间复杂度和O(n)空间复杂度。
2340

被折叠的 条评论
为什么被折叠?



