题目链接
https://pintia.cn/problem-sets/994805342720868352/problems/994805343236767744
题解
基础知识:哈希
为做这道题,我简单复习了一下哈希(点击查看)。
题目要求
往一个哈希表里插入n个正整数,然后从哈希表里查找m个正整数,请输出平均查找次数(即比较次数)
哈希函数定义为$H(key)= key \% TSize$,其中$TSize$是哈希表的最大容量,它最好是素数,如果输入的不是素数就必须找到大于输入的最小素数。
用二次探测(仅具有正增量)解决冲突。
英语
distinct
截然不同的, 完全分开的
sequence
有关联的一组事物, 一连串
quadratic
二次的,二次方程式
probe
n. 探针;调查
vi. 调查;探测
vt. 探查;用探针探测collision
碰撞, 冲突, 抵触
Quadratic probing (with positive increments only) is used to solve the collisions.
二次探测(仅具有正增量)用于解决冲突。
synonym
同义词
accurate up to 1 decimal place
精确到小数点后1位
注意点
- 待查找的元素可能不存在
- 题目说了输入的关键字都是正整数,所以可以把0作为表中某个位置没有元素的标志
- 注意这里的二次探测再散列只有正增量
- 查找时间指查找时进行比较的次数,如果没有再探测(即一次就找到了),那比较次数就是1
代码
1 | // Problem: PAT Advanced 1145 |
作者:@臭咸鱼
转载请注明出处:https://www.cnblogs.com/chouxianyu/
欢迎讨论和交流!