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

*/

时间: 2024-07-31 09:45:50

Hash的一点测试的相关文章

基于hash的AB测试

AB测试 为同一个目标,设计两种方案,将两种方案随机投放市场中,让组成成分相同(相似)用户去随机体验两种方案之一,根据观测结果,判断哪个方案效果更好. 基于hash的AB测试 具体的实现方法为: 在AB测试中需要将用户随机的分成两组,通过对每个用户唯一id做hash运算,并对hash值对2取模,便可以将用户分成0,1两组(分桶测试便是hahs对n取模). 每组采用不同的策略,并定义一个策略Id,跟随不同的策略埋点,在最后回收策略Id,最后通过策略id分析ab两种策略的好坏. golang中的ha

php memcache hash方法均衡性测试

支持两种hash方法: crc32 fnv 配置如下: ;  Hash function {crc32, fnv} memcache.hash_function=fnv set key脚本: <?php $cluster = array( array('host' => '127.0.0.1', 'port' => '11211'), array('host' => '127.0.0.1', 'port' => '11212'), array('host' => '12

内存分配速度的一点测试

LARGE_INTEGER litmp; LARGE_INTEGER qt1, qt2;QueryPerformanceFrequency(&litmp); double dff = (double)litmp.QuadPart; QueryPerformanceCounter(&qt1); int *a = NULL; for (int i = 0; i < 700; ++i) { for (int j = 0; j < 700; ++j) { a = new int[4];

QReadWriteLock读写锁的一点测试(它是逻辑锁,并没有与实物相联系),只有锁住了读,才允许再次读,否则一概不允许

QReadWriteLock m_lock; void MyWidget::Button1(){ m_lock.lockForRead(); ShowMessage(tr("111")); m_lock.lockForRead(); ShowMessage(tr("222"));}此时,111和222都可以顺利执行(第一个是锁住了进行读,第二个还是读数据,所以放行) void MyWidget::Button1(){ m_lock.lockForRead(); Sh

robotframework + selenium2library 一点测试的经验

1 对于元素的外层包括frame/iframe标签的.一定要先select  frame name=xxx,然后再操作元素. Select frame name=新建个案 click element  id=  xxxxx 2 对于window.showModalDialog()模式打开的新窗口 Eg.点击"支付详情"的"详情",出来一个新页面.如何定位呢?单纯的select window title=payDetail page  是定位不到新窗口的.解决办法如下

关于实施自动化测试的一点测试思路记录

在之前的博文上我使用的自动化是java.util+java+selenium实施的,验证断言是通过excel来进行维护的,操作麻烦且不利于后期的维护,近期学习了解到可以如下进行:例如一个用户登录与用户注册的自动化验证:1.首先我会验证用户注册,自动化将username,password,地址,邮编等信息参数化,自动化注册时将其写入,提交2.只有验证页面是否注册成功(即验证链接是都跳转到用户中心),同时抓取用户中心用户名与密码,地址等信息与之前的参数对应校验是否一致,验证注册成功后的用户是否正确3

黑盒测试之从系统测试到app测试

从8月15-至今,由系统测试转向app测试已有4月,怕忘记了短暂的系统测试所得,在此对比下二者的异同 一.侧重点不同 系统测试:1.系统内置app功能稳定可用,不出现闪退等恶劣现象2.系统稳定,不出现黑屏.死机.卡顿现象,使用流畅3.响应时间.功耗满足要求4.开机启动时间5.系统自带设置项功能正常可用,测试时要注意设置项与内置app等功能不冲突6.可正常开关机,测试时要考虑异常断电,关机重启,锁屏重启等现象7.系统需要做性能测试,之前经常用安兔兔等软件做性能测试8.简单的压力测试(以点击次数为准

如何使用wce进行hash注入

在内网渗透时,很经常会碰到好不容易提取出了hash,但是无法破解. wce号称内网渗透神器,其中有一个功能就是hash注入. 测试环境: 目标  windows2008 [192.168.200.128]hash如下: 测试机: windows7[192.168.200.5] 在无法破解192.168.200.128的administrator密码时,我们可以采用hash注入 先dir目标的c$(前提是目标有开启C盘共享) 会提示账号密码错误. 使用wce 格式: wce.exe -s 账号:主

记一个质量极差的测试工具——请重视手工测试,自动化测试不是银弹

新年伊始,又想吐槽一番. 背景:我在一个做自动化的持续集成测试的组. 我们隔壁有一个做测试工具的组.半年前我们隔壁组做了一个工具,具有代码分支管理.静态分析.不同级别的单元测试.集成测试等功能, 这个工具被老板看中,强制让所有部门使用这个工具来提交代码.不用这个工具提交的代码将不能合入产品代码的主分支.使用这个工具提交的代码会自动去编译.打包.进行各层测试. 大家使用之后,发现这个工具烂透了.有无数的严重BUG.(比如提交上去的代码不能打包成功,等等.) 我每次提交代码使用这个工具需要浪费大约8