• 数据结构之哈希表


    哈希表(hash table)

    • 定义

       哈希表,也叫散列表,是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数(哈希函数),存放记录的数组叫做散列表(哈希表)。

     

    • 详解

       记录的存储位置=f(key)

        这里的对应关系f称为散列函数(哈希函数),采用散列技术将记录存储在一块连续的存储空间中,这块连续存储空间称为散列表(哈希表)

        哈希表(key,value) 就是把Key通过一个固定的算法函数(即:哈希函数)转换成一个整型数字,然后就将该数字对数组长度进行取余,取余结果就当作数组的下标,将value存储在以该数字为下标的数组空间里。当存储记录时,通过散列函数计算出记录的散列地址;当查找记录时,我们通过同样的是散列函数计算记录的散列地址,并按此散列地址访问该记录

        哈希表有多种不同的实现方法,我接下来解释的是最常用的一种方法——拉链法,我们可以理解为“链表的数组”

        

        左边是个数组,数组的每个成员包括一个指针,指向一个链表的头,当然这个链表可能为空,也可能元素很多。我们根据元素的一些特征把元素分配到不同的链表中去,也是根据这些特征,找到正确的链表,再从链表中找出这个元素。

    • 优缺点

       

     

  • 相关阅读:
    websocket协议图
    go深浅拷贝
    nginx不匹配location前缀
    nginx localtion 的alias是一个目录别名的定义,root则是最上层目录的定义
    启动了多个redis,怎么知道哪个redisserver使用的是哪个配置文件?
    go打印地址
    Linux之pureftpd安装和使用
    Xtrabackup异机远程备份
    产品新版本发布前要做那些事呢
    2014年新的一年,新的起点。。。
  • 原文地址:https://www.cnblogs.com/javaisbest/p/12944923.html
Copyright © 2020-2023  润新知