博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
可用的哈希函数(一)
阅读量:6266 次
发布时间:2019-06-22

本文共 410 字,大约阅读时间需要 1 分钟。

求余方法(Division Method)

hash(k) = k % m复制代码

首先,假设我们使用的表的大小是m, 在后继的文章中我们会继续聊一下有关哈希表的大小。但是如果m是奇数,且k均为奇数的话,这个哈希函数就会完全浪费表函数中几乎一半的位置。在最糟糕的情况下,整个算法会退化为一般的线性查找,复杂度为O(n)。

乘法方法(Multiplication Method)

hash(k) = ((a * k) mod 2^w) >> (w - r)其中 r = logm, w = logk复制代码

a是一个随机值。理论上的效率还不错。

全局哈希(Universal hash)

hash(k) = ((a * k + b) % p) % m复制代码

这里p是一个大于m的质数, a和b都是小于p的一个随机值。

转载于:https://juejin.im/post/5cc910235188254194354d0f

你可能感兴趣的文章
Silverlight实用窍门系列:70.Silverlight的视觉状态组VisualStateGroup
查看>>
照片筛选与上传功能
查看>>
Hello ZED
查看>>
常见web攻击方式
查看>>
hdu 4472
查看>>
oracle存储过程中is和as区别
查看>>
windows 2003 群集
查看>>
几个gcc的扩展功能
查看>>
Spark一个简单案例
查看>>
关于结构体占用空间大小总结(#pragma pack的使用)
查看>>
通过浏览器查看nginx服务器状态配置方法
查看>>
shell简介
查看>>
android 使用WebView 支持播放优酷视频,土豆视频
查看>>
怎么用secureCRT连接Linux
查看>>
C# 使用WinRar命令压缩和解压缩
查看>>
linux学习笔记一----------文件相关操作
查看>>
Mono for Android 优势与劣势
查看>>
服务器端开发技术
查看>>
Python3中urllib详细使用方法(header,代理,超时,认证,异常处理)
查看>>
ajax提交多个对象,使用序列化表单和FormData
查看>>