hash table(用乘法散列法实现)


#ifndef C11LEARN_HASHMULTI_H
#define C11LEARN_HASHMULTI_H
#include "HashDivision.h"
template<typename T>
class HashMulti:public HashDivision<T>
{private:long w;long p;long long s;long long two_32;
public:HashMulti():HashDivision<T>(1<<14){s = 2654435769;w = 32;p = 14;two_32 = 1;two_32 = two_32<<32;}HashMulti(const HashMulti<T>& multi):HashDivision<T>(1<<14){s = 2654435769;w = 32;p = 14;two_32 = 1;two_32 = two_32<<32;HashDivision<T>::copy(multi);}protected:virtual int hashing(int key);
};
template<typename T>
int HashMulti<T>::hashing(int key){return ((key*s)%two_32)>>(w-p);
}
#endif //C11LEARN_HASHMULTI_H

测试代码

    HashMulti<string> hashMulti;hashMulti[2] = "hello";hashMulti[123456] = "world";cout << hashMulti[2] << endl;cout << hashMulti[123456] << endl;

辅助类
HashDivision链接地址

乘法哈希和除法哈希的不同点是哈希函数不同,
共同点都是用双向链表解决冲突问题。

hash table(用乘法散列法实现)相关推荐

  1. 哈希表(Hash Table)及散列法(Hashing)

    bigshuai 哈希 源地址 http://www.cnblogs.com/bigshuai/articles/2398116.html 哈希表(Hash Table)及散列法(Hashing) 数 ...

  2. hash table(全域散列法实现的哈希表)

    hash table(全域散列法实现的哈希表) 利用每次重建哈希表时随机生成散列函数 #ifndef C11LEARN_HASHUNIVERSAL_H #define C11LEARN_HASHUNI ...

  3. 哈希表添加哈希表(Hash Table,也叫散列表),是根据键(Key)而直接访问在内存存储位置的数据结构。typedef enum{ HASH_OK, -icoding

    哈希表添加 哈希表(Hash Table,也叫散列表),是根据键(Key)而直接访问在内存存储位置的数据结构.也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加 ...

  4. c#加密:二、散列法 MD5、SHA256、SHA512

    散列法提供了一种单向加密的方式.这种方式非常适用于在数据库中存储密码.因为我们无须(也不希望)提供解密的信息.在登录验证时,只需简单地将用户的输入进行散列,并和数据库中存储的散列值进行比较即可. 由于 ...

  5. 数据结构记录--散列法实验

    Home Web Board ProblemSet Standing Status Statistics Problem A: 散列法的实验 Time Limit: 1 Sec  Memory Lim ...

  6. 散列(2)线性探测法和双重散列法

    接上篇 散列的简要描述和链地址法 解决散列冲突的方法: 1. 线性探测法 如果我们能够预测将要存入表中元素的数目,而且我们有足够的内存空间可以容纳带有空闲空间的所有关键字,那么使用链地址法是不值得的. ...

  7. 哈希(散列):(四)C语言实现 哈希 开散列法

    哈希(散列)的概念: https://blog.csdn.net/mowen_mowen/article/details/82943192 C语言实现:静态哈希表: https://blog.csdn ...

  8. 区块链基础:散列法 (Hashing)

    灯泡,比特(bits)与字节(bytes) 你可能知道计算机中所有的数据都是由0或1组成的,最小的数据单位就是一个比特(bit,或位),它也是0或者1.想象一下,一台计算机拥有着很多的灯泡,而这个灯泡 ...

  9. 散列表相关题目(线性探测再散列法)

    散列表相关题目(线性探测再散列法) 一.题目 将关键字序列(7.8.30.11.18.9.14)散列存储到散列表中.散列表的存储空间是一个下标从0开始的一维数组,散列函数为H(key)=(key×3) ...

最新文章

  1. VOLTE parameter in Attach Request/Accept message
  2. 深度剖析Zabbix Web scenarios数据表结构
  3. linux中mbr最大多少分区,Linux与磁盘分区介绍(MBR,GPT)
  4. lcd和服务器同时显示温度,51单片机LCD1602如何同时显示温度和时间
  5. redis的多路复用是什么鬼
  6. 微信小程序制作课程表_课表微信小程序实现(纯技术文)
  7. 蓝桥杯数字三角形java,蓝桥杯数字三角形(java)
  8. 女方妈妈和男方爸爸这样告诉即将结婚的儿女,写的真好,希望每个人都可以认真的把它看完...
  9. 使用PYTHON列表生成式过滤数据
  10. Java简单小项目---网上订餐系统
  11. 苹果x和xsmax有什么区别_苹果12和12pro有什么区别?参数对比拍照续航,哪个值得买?...
  12. 创业教父马云的经典语录
  13. 300多张精美京剧脸谱,收藏~~
  14. [转]开源大数据处理工具汇总
  15. python操作Excel之openxlpy
  16. sql中查询最近一条记录
  17. 『状态』驱动的世界:ReactiveCocoa
  18. mybatis-plus自动生成的时候报错java.lang.NoClassDefFoundError: org/apache/velocity/context/Context
  19. 前景与挑战并存 餐饮信息化当突围
  20. 数据库考研真题回忆版

热门文章

  1. Git之删除远程分支
  2. C语言之字符数组在if{}里面赋值给char *引发的问题
  3. linux 下执行.sh文件总是提示permission denied
  4. Android安全与逆向之在ubuntu上面搭建NDK环境
  5. linux之less 命令
  6. Activity之launchMode:singleTop,singleTask与singleInstance
  7. Android之如何解决Android studio运行出现的HAX kernel modules is not installed
  8. 懒办法1篇文10分钟快速入门MySQL增删查改
  9. loadrunner发送json_Loadrunner模拟JSON接口请求进行测试
  10. Android封装快捷键,android打包一个没有快捷键的apk,并且通过另一个应用启动