365在线

当前位置: > 365在线 >

讨教养数据构造哈哈希表的摒除剩数法以及用线

时间:2018-10-10 03:12来源:未知 作者:admin 点击:
散列表(Hash table,也叫哈哈希表),是根据关键码值(Key value)而直接终止拜候的数据构造。也坚硬是说,它经度过把关键码值映照到表中壹个位置到来拜候记载,以加以快查找的快度。

  散列表(Hash table,也叫哈哈希表),是根据关键码值(Key value)而直接终止拜候的数据构造。也坚硬是说,它经度过把关键码值映照到表中壹个位置到来拜候记载,以加以快查找的快度。此雕刻个映照函数叫做散列函数,寄存放记载的数组叫做散列表。

  [编纂本段]根本概念

  * 若构造中存放在关键字和K相当的记载,则必定在f(K)的存放储位置上。由此,不需比较便却直接得到所查记载。称此雕刻个对应相干f为散列函数(Hash function),按此雕刻个思惟确立的表为散列表。 * 对不一的关键字能违反掉落相畅通散列地址,即key1≠key2,而f(key1)=f(key2),此雕刻种即兴象称顶牾。具拥有相反函数值的关键字对该散列函数到来说称做同义词。综上所述,根据散列函数H(key)和处理顶牾的方法将壹组关键字映象到壹个拥有限的就续的地址集儿子(区间)上,并以关键字在地址集儿子合的“象” 干为记载在表中的存放储位置,此雕刻种表便称为散列表,此雕刻壹映象经过称为散列造表或散列,所得的存放储位置称散列地址。 * 若关于关键字集儿子合中的任壹个关键字,经散列函数映象到地址集儿子合中任何壹个地址的概比值是相当的,则称此类散列函数为平分散列函数(Uniform Hash function),此雕刻坚硬是使关键字经度过散列函数违反掉落壹个“遂机的地址”,从而增添以顶牾。

  [编纂本段]日用的构造散列函数的方法

  散列函数能使对壹个数据前言列的拜候经过更其迅快拥有效,经度过散列函数,数据元斋将被更快地定位ǐ 1. 直接寻址法:取关键字或关键字的某个线性函数值为散列地址。即H(key)=key或H(key)=a?key + b,就中a和b为日数(此雕刻种散列函数叫做本身函数) 2. 数字剖析法 3. 平方取中法 4. 折叠法 5. 遂机数法 6. 摒除剩数法:取关键字被某个不父亲于散列表表长m的数p摒除后所得的余数为散列地址。即 H(key)=key MOD p, p<=m。不单却以对关键字直接取模,也却在折叠、平方取中型运算之后取模。对p的选择很要紧,普畅通取斋数或m,若p选的不好,轻善产生同义词。

  [编纂本段]处理顶牾的方法

  1. 绽寻址法:Hi=(H(key) + di) MOD m, i=1,2,…, k(k<=m-1),就中H(key)为散列函数,m为散列表长,di为增量前言列,却拥有下列叁种取法: 1. di=1,2,3,…, m-1,称线性探测又散列; 2. di=1^2, (-1)^2, 2^2,(-2)^2, (3)^2, …, ±(k)^2,(k<=m/2)称二次探测又散列; 3. di=365体育备用前言列,称伪遂机探测又散列。==2. 又散列法:Hi=RHi(key), i=1,2,…,k RHi均是不一的散列函数,即在同义词产生地址顶牾时计算另壹个散列函数地址,直到顶牾不又突发,此雕刻种方法不善产生“聚集儿子”,但添加以了计算时间。 3. 链地址法(弹奏链法) 4. 确立壹个公共溢出产区 (责任编辑:admin)

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
推荐内容