zoukankan      html  css  js  c++  java
  • 散列表

    散列表

    散列函数

    • 除法散列法

      [h(k) = kmod m ]

      其中k为关键字的自然数表示,m为散列表长度

    • 乘法散列法

      [h(k) = m(kAmod1) ]

      其中A为常数0<A<1,即(kAmod1)是取kA的小数部分

    开放寻址法

    所有元素都存放在散列表中,每个表项或包含一个元素或者为空。当查找某个元素时,要系统的检查所有表项。

    • 线性探查

      通过一个散列函数h()找到一个初始的表项h(k),如果该位置为空则插入k值,否者探查h(k)+1,直到探查完整个序列;查找时方法类似。优势在于实现简答,但容易出现群集,使得平均查找时间变大。

    • 二次探查

      找到初始表项h(k),后续探查位置为(h(k)+c_1i+c_2i^2),其中(c_1,c_2)常数,i为(0,1,2...),直到探查整个序列。

      探查效果比线性好,但也可能出现群集

    • 双重散列

      找到初始表项h(k),后续探查位置为(h(k)+ih_2(k)),其中h2()是另一个散列函数,i为(0,1,2...)。

      如果散列函数合适,探查效果最好,其性能非常接近理想的均匀散列!

    • 散列分析

      假设装载因子为(α<frac nm<1),且是均匀散列的。则对于一次不成功的查找,其期望的探查次数为 $1/(1-α) $ ;插入一个元素期望的探查次数为(1/(1-α));一次成功查找期望次数为(frac1αlnfrac1{1-α})

  • 相关阅读:
    networktool3
    networktool2
    networktool
    Intel Zepher 介绍
    使用IPMI发送事件1让BMC log 填满
    Knights Landing
    Intel历代处理器
    Intel Datacenter Group Public Roadmap
    django的url路由
    position用法
  • 原文地址:https://www.cnblogs.com/k-blog/p/14225716.html
Copyright © 2011-2022 走看看