美文网首页
散列表下

散列表下

作者: LibraLIn | 来源:发表于2020-12-11 19:10 被阅读0次

在上一章我们实现了对数组加链接的基础组合

大量经验丰富的的程序员给除的应用实例,基于拉链法的散列表种使用

大小为M的数组能够将插入和查找的操作效率提高M倍.

但是正常如果数据量比较大的情况下 还需对数组进行动态扩容,然后重新

散列 将数据重新填充

正常来说这个系数是0.5-0.75 ,就是比如说现在数组长度是100,

现在有效的数据是大于50个 就需要对数组进行扩容 ,一般扩容都是

小于比如说1024这个长度 就会扩容一倍,大于可能就会扩容0.5倍  

当然上述的参数都是可以自己定义的

#3 当然如果元素被删除过多的时候 散列表数组也应该进行回容的操作

我们还有一种去解决散列碰撞的方法

就是利用原始数组的空位,比如说如果发现了空间碰撞

我们可以直接将索引+1然后查看有没有空位

但是这样继续查找的成本可能会很大

比如说hash的可以本来不存在,但是我们计算后的hash是有碰撞的

这样我们机会启动一个循环 循环到空位之前 会一直查找,这样就会导致

散列查找的时间复杂度是O(N)  是不符合散列的设计初初衷的

相关文章

  • 散列表下

    为什么散列表和链表经常会一起使用? 散列表这种数据结构虽然支持非常高效的数据插入、删除、查找操作,但是散列表中的数...

  • 散列表下

    在上一章我们实现了对数组加链接的基础组合 大量经验丰富的的程序员给除的应用实例,基于拉链法的散列表种使用 大小为M...

  • 散列表(下)

    如何设计一个好的散列函数 散列函数的设计不能太复杂,过于复杂的散列函数会消耗很多计算时间,间接影响散列表的性能。 ...

  • 散列表(下)

    一、为什么散列表和链表经常放在一起使用? 1.散列表的优点:支持高效的数据插入、删除和查找操作2.散列表的缺点:不...

  • 散列表下

    为什么散列表和链表经常会一起使用? 散列表这种数据结构虽然支持非常高效的数据插入、删除、查找操作,但是散列表中的数...

  • 散列表(下):为什么散列表和链表经常会一起使用?

    散列表(下):为什么散列表和链表经常会一起使用? 散列表和链表经常会被放在一起使用。 在链表那一节,学到了如何用链...

  • 数据结构与算法笔记day16:散列表(中)

    今天我们学习的内容是,如何设计一个可以应对各种异常的工业级散列表,来避免在散列冲突的情况下,散列表性能的急...

  • 数据结构-散列表(下)

    为什么散列表和链表经常会一起使用? 今天,我们就来看看,在这几个问题中,散列表和链表都是如何组合起来使用的,以及为...

  • 散列表

    1.啥是散列表及散列函数? 很多语言都提供了散列表的实现方式,python是用dict{ }来实现 2.有啥优势?...

  • 散列表

    基本概念(非严谨) 散列表:按照思考事物本质以及理想状态的思路,那么散列表从本质来讲就是一个表,而理想的散列表应该...

网友评论

      本文标题:散列表下

      本文链接:https://www.haomeiwen.com/subject/bcdrgktx.html