Copa Blue Bridge - HashMap manuscrito

  • 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_mapSin embargo, para ocasiones con requisitos de alta velocidad, la velocidad de hashMap escrito a mano es aproximadamente unordered_map10 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

Supongo que te gusta

Origin blog.csdn.net/qq_33880925/article/details/129767987
Recomendado
Clasificación