今天大概讲一讲哈希表的原理,构造,冲突等。
哈希(HASH)是什么,其实哈希就是一种映射,将一些线性数据通过一个函数h算出一个值作为下表,定义一个A数组单元来按照下标储存数据。
举例:离散优化就是一种特殊的哈希,它的函数比较简单。
如图,如果这个数组的数据下标不大的话,我们就可以直接排序算出距离,但当下标太大时,我们开不出那么大的数组,所以我们就可以采用一种特殊的哈希思想,将每个两个点截出的线段开一个从下标1开始的数组来存储。实际上就是把下标作为数据值存入一个新的数组里,这样使用时只用遍历一下即可找到想要的点,又避免了数组过大。
代码:#include<stdio.h>
#include<algorithm>
using namespace std;
int x[2000];
in