哈希

作者: kakarotto | 来源:发表于2018-05-22 18:07 被阅读0次

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

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

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

    常见的解决碰撞的方法有一下几种:
    • 开放定址法
    • 链地址法
    • 再哈希法
    • 建立公共溢出区
    1.开放定址法

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

    2.链地址法

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

    3.再哈希法

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

    4.建立公共溢出区

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

    相关文章

      网友评论

          本文标题:哈希

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