美文网首页
散列表——索引分散的列表数据结构

散列表——索引分散的列表数据结构

作者: dreamsfuture | 来源:发表于2018-03-20 20:36 被阅读0次

定义:使用一个简单的无序数组来实现将键的值转化为数组的索引,此索引存储键对应的值,这样就可以快速访问任意键对应的值

把键转换为索引:使用散列函数将被查找的键转换为数组的索引,但是可能不同的键会被散列函数转化为同一个索引,通过拉链法和线性探测法可以避免冲突。

拉链法:如果发生碰撞,则将索引大小为M 的键与索引为M的数组元素匹配一个链表,链表中的每一个节点都存储散列值为M的键值对,这就是拉链法

线性探测法:当发生碰撞时(一个键被散列到一个已经有键值对的数组位置),我们会检查数组的下一个位置是否是当前节点(key和value都相等)或为空,如果是节点则不用,否则继续检查下一个,直到null,则插入,这个过程被称作线性探测

参考文献:
[1] Java数据结构与算法解析(十二)——散列表——经典推荐,讲的比较详细

相关文章

  • 散列表——索引分散的列表数据结构

    定义:使用一个简单的无序数组来实现将键的值转化为数组的索引,此索引存储键对应的值,这样就可以快速访问任意键对应的值...

  • 散列表

    散列表:其实相当于就是一种可以存储键值的数据结构 咱们先把散列表当成一个数组来看键就相当于是数组索引,值就是索引内...

  • 算法图解-散列表

    1. 散列表 散列表由键和值组成,散列表将键映射到值。 在复杂数据结构中,散列表可能是最有用的,也被称为散列映射、...

  • python内置数据类型之列表

    1.什么是列表? 列表是有序的,线性数据结构; 列表可以使用索引; 列表的元素可以为任意对象(数字,字符串,对象,...

  • 散列表

    什么是散列表 散列表也叫哈希表,输入某一关键字输出其对应的数值的数据结构 散列表的生成依赖于散列函数,散列函数的要...

  • 散列表下

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

  • 散列表下

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

  • 学习JavaScript数据结构与算法(第2版)

    二维和多维数组 栈数据结构 队列数据结构(排队) 链表数据结构 双向链表 集合 字典和散列表 散列表 树 二叉树 ...

  • 基础概念

    散列表 散列表是一种将键(Key)映射为值(Value)从而快速查找的数据结构 散列表包含一个底层数组和一个散列函...

  • Java HashMap原理解析

    本文分析HashMap的实现原理。 数据结构(散列表) HashMap是一个散列表(也叫哈希表),用来存储键值对(...

网友评论

      本文标题:散列表——索引分散的列表数据结构

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