据我所之,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)的空间复杂度。
代码回头再贴上