哈希表c++实现
哈希函数计算地址 有冲突用探测函数获得新地址解决 为什么哈希函数查找速度快,因为他是索引查找,最好o(1),别扯那个多没用的哈希函数计算地址这些东西。 # include <iostream> using namespace std ; const int maxnum = 15 ; int HT [ maxnum ] ; //哈希地址表 int HC [ maxnum ] ; //计算单个地址的比较次数 int m = maxnum ; //线性探测总的步长 = 哈希地址表长,因为要遍历一个周期查看是否有空余位置 //哈希函数 int H ( int key ) { return key % 13 ; } void init ( ) { for ( int i = 0 ; i < maxnum ; i ++ ) { HT [ i ] = - 1 ; } for ( int i = 0 ; i < maxnum ; i ++ ) { HC [ i ] = 0 ; } } //冲突探测 //(线性探测) int LineDetect ( int H0 , int key , int & cnt ) //根据原散列地址H0来计算新的Hi不冲突地址,用cnt计算总比较次数 { int Hi ; for ( int i = 1 ; i < m ; i ++ ) //自身不需要再比较了 {