2020-12-16

作者: 预眸丶 | 来源:发表于2020-12-16 23:10 被阅读0次

    cuckoo_Hash(鸠占鹊巢)

    布谷鸟哈希,是通过两个以上的哈希函数,对Hash_table进行操作

    插入:

    通过计算hash1的值看是否位置已经被占用,被占用,则看看下一个是不是也被占用,被占用则踢出该值,并占用该空间。然后我们对被踢出的值再使用另一个hash算法,去寻找位置,或踢出别人,直到有位置。若一直没有位置,且循环次数达到较大次数,则扩增hash_table,重新建表

    !!!插入前必须检查key是否存在,不然则容易出现挤兑循环。

    查找:

    通过计算两个hash函数,查看是否该位置是否有我们想要的内容

    删除:

    通过查找,erase与我们key值相同的内容

    布谷鸟hash,改良

    1:通过建立较多的hash关系去尽可能的占满表的空间

    2:构建一个hash函数一个表的情况,也可以提高表的使用率。

    布谷鸟hash:适用于操作插入少,查找多的情况。

    而普通的hash表(链地址法):适用于操作插入多,查找少的情况。

    进阶hash表(嵌套hash):hash<hash<Type>>,查找速度也很快,但是消耗的空间较大,同时内嵌的hash表难维护

    Java GUI编程:

    先生成一个Frame面板,再从中添加组件Panel,组件之中可以多次嵌套panel,也可以增加lable。

    优先队列不可以使用迭代器遍历,只能获取堆顶元素。最小堆的实质是一颗满二叉树,可以使用链表实现,也可以使用数组实现。使用数组实现时,具有满二叉树的特性。

    相关文章

      网友评论

        本文标题:2020-12-16

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