Hash的一点测试
Posted fastle
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hash的一点测试相关的知识,希望对你有一定的参考价值。
哈希表的学习与测试
以前写的hash都是碰运气的hash,就是乘上质数取模的那种,这样不能保证不碰撞,所以今天先写上几个双hush和链表的hash,并比较一下他们的速度,测试的话用洛谷上的“字符串哈希”题目进行测试。
Hash1:碰撞三个点 用时352ms
/*
这个是只进行一次取质数的hash 第一次尝试 取key值127 mod值 10000000
*/
Hash2:碰撞三个点 用时360ms
/*
这个也是只进行一次取质数的 hush key值131 mod值换成了质数 12345701
*/
Hash3:碰撞两个点 用时228ms
/*
自然溢出加上取模的hush 模数为12345701 速度要高于纯取模的
*/
Hash4:通过所有点 用时 492ms
/*
Hash1和Hash2合并起来进行双哈希 速度有些慢
*/
Hash5:通过所有点 用时280ms
/*
进行两次自然溢出哈希 结果挺快也挺稳的
*/
Hash6:通过所有点 用时216ms
/*
采用单次自然溢出哈希加上链表的方法 适合比较松散的数据 然后是可以处理碰撞的 qwq
*/
以上是关于Hash的一点测试的主要内容,如果未能解决你的问题,请参考以下文章