歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> BKDR Hash 函數實現

BKDR Hash 函數實現

日期:2017/3/1 9:16:42   编辑:Linux編程

K&R一書中提出的BKDR Hash算法,這裡給出C函數實現,實際用的時候分布比較好而且實現簡單。唯一不明白的就是為什麼選擇131這種模式的數字作為種子,隱隱有沃爾夫勒姆31號自動機的似曾相識的感覺。

//BKDR Hash 函數

unsigned int bkdr_hash(const char * str) {

unsigned int seed = 131;

unsigned int hash = 0;

while (*str) {

hash = hash * seed + (*str++);

}


//65536為Hash值范圍可以根據需要修改

return hash % 65536;

}

Copyright © Linux教程網 All Rights Reserved