Rabin-Karp(旋转哈希)算法
Rabin-Karp(旋转哈希)算法
类似于窗口移动,只不过将字符串转为为数值(散列值)来计算。
移动后的字符串散列值 = 旧字符串 - 第一位数字的值 * R(系数) + 新一位数字的值
关键的代码实现(java):
计算一段字符串的散列值:
private long hash(String key,int M){
//计算 key[0...M-1]的散列值
long h = 0;
for (int j = 0; j < M; j++) {
h =
原创
2020-11-12 20:35:53 ·
742 阅读 ·
0 评论