hash算法的原理是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
直接定址法:
数字分析法:
不失一般性,我们这里只给出其中8个关键字进行分析,8个关键字如下所示:
此法适于:能预先估计出全体关键字的每一位上各种数字出现的频度。
K1=61317602 K2=61326875 K3=62739628 K4=61343634
K5=62706815 K6=62774638 K7=61381262 K8=61394220
取数据元素关键字中某些取值较均匀的数字位作为哈希地址的方法
例2,要构造一个数据元素个数n=80,哈希长度m=100的哈希表。
折叠法:
平方取中法:
则对不同的关键字得到的哈希函数值不易产生冲突,
由此产生的哈希地址也较为均匀
先取关键字的平方,然后根据可使用空间的大小,选取平方数是中间几位为哈希地址
原理是通过取平方扩大差别,平方值的中间几位和这个数的每一位都相关,
此法适于:关键字中的每一位都有某些数字重复出现频度很高的现象
减去法
基数转换法
除留余数法:
随机数法:
随机乘数法
字符串数值哈希法
旋转法
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注天达云行业资讯频道,感谢您对天达云的支持。