哈希

2018-05-22  本文已影响0人  kakarotto

hash,一般翻译为散列,也名哈希

哈希的描述:把任意长度的输入通过哈希算法变换为固定长度的输出,输出称为哈希值(散列值)。
两个不同的输入值通过相同的哈希函数计算出相同的哈希值,这种现象称为碰撞。

衡量一个哈希函数好坏的重要标准,就是发生碰撞的概率及发成碰撞的解决方法。
任何哈希函数基本都无法彻底避免碰撞。

常见的解决碰撞的方法有一下几种:
1.开放定址法

一旦发生了冲突,就去寻找下一个空的散列地址,只要散列表足够大,空的散列地址总能找到,并将记录存入

2.链地址法

将哈希表的每个单元作为链表的头结点,所有哈希地址为i的元素构成一个同义词链表。即发生冲突时就把该关键字链在以该单元为头结点的链表的尾部

3.再哈希法

当哈希地址发生冲突用其他的函数计算另一个哈希函数地址,直到冲突不再产生为止

4.建立公共溢出区

将哈希表分为基本表和溢出表两部分,发生冲突的元素都放入溢出表中

上一篇下一篇

猜你喜欢

热点阅读