题目描述 定义哈希函数为H(key) = key%11。输入表长(大于、等于11),输入关键字集合,用二次探测再散列构建哈希表,并查找给定关键字。 输入 测试次数t 每组测试数据格式如下: 哈希表长m、关键字个数n n个关键字 查找次数k k个待查关键字 输出 对每组测试数据,输出以下信息: 构造的 ...
分类:
其他好文 时间:
2020-01-12 18:10:20
阅读次数:
77
最近时间有点紧,暂时先放参考链接了,待有时间在总结一下: 查了好多,这几篇博客写的真心好,互有优缺点,大家一个一个看就会明白了: 参考 1. 先看这个明白拉链法(链地址法),这个带源码,很好看懂,只不过是只讲了拉链法一种; 2. 再看这个比较全的,四种全讲了,链接,这篇比较形象,有图。但是这两篇都没 ...
分类:
编程语言 时间:
2019-08-18 17:58:45
阅读次数:
273
数论ex 数学学得太差了补补知识点or复习 Miller Rabin 和 Pollard Rho Miller Rabin 前置知识: 1. 费马小定理 $$ a^{p 1}\equiv 1\pmod p,p \ is \ prime $$ 2. 二次探测(mod奇素数下1的二次剩余) $$ x^2 ...
分类:
其他好文 时间:
2019-04-28 21:59:39
阅读次数:
180
实现方法 一、开放地址法 线性探测原始下标为x,线性探测就是x+1,x+2,x+3当数据项占哈希表长的一半或三分之二时,性能最好 二次探测原始下标为x,二次探测就是x+1,x+4,x+9,即x+1,x+2,x+3要求哈希表的容量是一个质数 再哈希法方法是把关键字用不同的哈希函数再做一次哈希化,用这个 ...
分类:
其他好文 时间:
2019-01-06 20:05:40
阅读次数:
180
1、链地址法 指把所有的冲突关键字存储在一个线性链表中,这个链表由其散列地址唯一标识。 2、开放定址法 开放地址法通常需要有三种方法:线性探测、二次探测、再哈希法。 线性探测 线性探测方法就是线性探测空白单元。当数据通过哈希函数计算应该放在700这个位置,但是700这个位置已经有数据了,那么接下来就 ...
分类:
其他好文 时间:
2018-11-29 16:37:59
阅读次数:
234
/*哈希查找 *哈希函数的构造方法常用的有5种。分别是: *数字分析法 *平方取中法 *分段叠加 *伪随机数 *除留取余法 *这里面除留取余法比较常用 *避免哈希冲突常用的方法有4种: *开放定址法(线性探测再散列、二次探测再散列) *链地址法 *再哈希法 *建立公共溢出区 其中,线性探测再散列比较 ...
分类:
编程语言 时间:
2018-10-14 00:29:43
阅读次数:
199
素数在数论中经常被用到。也是数论的基础之一。 人们一直在讨论的问题是,怎样快速找到素数?或者判断一个数是素数? 1.根号n枚举 2.埃氏筛 3.线性筛 4.Miller_Rabin 利用:二次探测,费马小定理。 ...
分类:
其他好文 时间:
2018-09-25 01:30:08
阅读次数:
207
1、开放定址法: Hi=(H(key)+di)% m 其中H(key)为哈希函数,m 为表长,di称为增量序列。根据增量序列的取值方式不同,具体到下面三种散列方法: 线性探测再散列:di=1,2,3,…,m-1 二次探测再散列:di=1^2,-1^2,2^2,-2^2,…,k^2,-k^2 ( k< ...
分类:
其他好文 时间:
2018-09-19 14:47:13
阅读次数:
137
题目: 已知关键字序列为{30,25,72,38,8,17,59},设散列表表长为15.散列函数是H(key)=key MOD 13,处理冲突的方法为二次探测法Hi= ( H(key) + di )mod 15 ( di=12,-12,22,-22,… ),请写出构造散列表的详细计算过程,填写散列表 ...
分类:
其他好文 时间:
2018-06-03 21:28:36
阅读次数:
450
插入删除接近常量,大o表示法最快的方式哈希表查询也快,但是底层存储结构是数组,一旦创建无法改变大小哈希表无法用来有序遍历冲突的解决方法:开放地址法(线性探测,二次探测,再哈希)和链地址法 ...
分类:
其他好文 时间:
2017-10-23 18:13:54
阅读次数:
154