美文网首页
散列表(Hash Table)

散列表(Hash Table)

作者: 币来币往 | 来源:发表于2018-12-09 12:13 被阅读0次

散列表其实就是数组+hash函数构成。
所以它就具有了数组和hash函数的所有优点。
数组,支持按索引随机访问数组中的任意数据;
hash函数,可以将任意类型的数据映射成为一个整数(数组下标)。
所以当我们存储数据的时候,将数据存储到按hash函数计算出来的索引下面,查询的时候通过hash函数就可以找到数据所在位置的下标,就可以在O(1)时间内取到数据。

image.png

这里肯能遇到的问题是,两个key可能映射到了同一个下标值,我们把这种现象称为hash冲突。显然不能直接覆盖,否则之前存的数据就没有了。常用的解决方法有两个:

  • 开放寻址法
    如果hash函数计算出来的下标索引下面已经有数据了,就找该下标之后第一个没有数据的位置存放数据。
  • 链表法
    在每个元素中存储一个链表,将相同hash 值的所有元素都存储在这个链表上面


    image.png

相关文章

  • 数据结构-散列表

    1 散列表 散列表的英文叫“Hash Table”,我们平时也叫它“哈希表”或者“Hash 表”,散列表用的就是数...

  • 数据结构与算法——散列表

    什么是散列表 散列表(hash table),我们平时叫它哈希表或者Hash 表,你肯定经常听到它。 散列表是根据...

  • 散列表(hash table)

    散列函数(哈希函数 hash function) 在一组数据中查找出一个数据无序数组 O(n)有序数组 O(lo...

  • 散列表(Hash Table)

    定义 散列表是一种以平均O(1)时间插入、删除和查找的数据结构,可是类似于findMax,findMin等操作则需...

  • 散列表(Hash Table)

    散列表其实就是数组+hash函数构成。所以它就具有了数组和hash函数的所有优点。数组,支持按索引随机访问数组中的...

  • 散列表 - Hash Table

    「总结自《Grokking Algotithms》这本书第五章内容」 散列函数 哈希表(Hash Table),学...

  • iOS开发之哈希表、时间复杂度、链表

    哈希表(Hash table) 哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而...

  • 18-散列表(上):Word文档中的单词拼写检查功能是如何实现的

    散列表的英文叫“Hash Table”,我们平时也叫它“哈希表”或者“Hash 表”。 散列表用的是数组支持按照下...

  • 散列表

    散列表的英文叫“Hash Table”,我们平时也叫它“哈希表”或者“Hash 表”。 散列表用的是数组支持按照下...

  • 数据结构与算法--散列表

    散列表(Hash Table),也叫它“哈希表”或者“Hash 表”.散列表用的是数组支持按照下标随机访问数据的特...

网友评论

      本文标题:散列表(Hash Table)

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