- hashMap hashMap es una tabla hash, que puede realizar rápidamente la consulta a la velocidad de O(1), y es hashMap
en C++ .unordered_map
Sin embargo, para ocasiones con requisitos de alta velocidad, la velocidad de hashMap escrito a mano es aproximadamenteunordered_map
10 veces mayor que la de - algoritmo hash
//一般手写hash使用999997作为模数,这样能尽可能减少冲突
const long long int M=999997;
vector<int> hashMap(M,-1);
//对x进行散列
long long int find(long long int x){
//最常用散列算法
long long int t=(x%M+M)%M;
while(hashMap[t]!=-1&&hashMap[t]!=x){
t++;
if(t==M) t=0;
}
//得到x在hash中的散列值
return t;
}
La velocidad del hash escrito a mano depende de la calidad del algoritmo hash, cuantos menos conflictos haya en el algoritmo hash, más rápida será la velocidad