美文网首页
数据结构 - hash table

数据结构 - hash table

作者: erU | 来源:发表于2017-03-17 15:15 被阅读11次

    基本概念

    散列表查找(K -- V)。
    存储位置 = f(关键字) 查找的时候根据key的映射f(key)找到值存储的位置。

    构造散列函数。

    1. 直接定制法。

    f(key) = a x key + b(a b 为常数)

    1. 数字分析法。

      通常适合处理关键字位数比较大的情况,如果事先知道关键字的分布且关键字的若干位分布较均匀。

    2. 平方取中法。

    比较适合不知道关键字的分布,而位数又不是很大的情况。

    if  key == 1234;
         key^2 == 1522756
      address = 227
    
    1. 折叠法。

    适合关键字位数比较多的情况。

    以适当的位数分割整个关键字,然后分割出来的数进行相加。

    1. 除留取余数发。
    f(key) = key mod p (p<=m)
    若散列表表长为m,通常p为小雨或等于表长的最小质数或不包含小于20质因子的合数。
    

    解决散列冲突

    1. 开放定址法。
    2. 再散列函数法。
    3. 链地址发。
    4. 公共溢出区法。

    实现

    相关文章

      网友评论

          本文标题:数据结构 - hash table

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