PHP中的Hash算法_PHP教程
程序员文章站
2024-02-06 11:52:40
...
Hash Table是PHP的核心,这话一点都不过分.
PHP的数组,关联数组,对象属性,函数表,符号表,等等都是用HashTable来做为容器的.
PHP的HashTable采用的拉链法来解决冲突, 这个自不用多说, 我今天主要关注的就是PHP的Hash算法, 和这个算法本身透露出来的一些思想.
PHP的Hash采用的是目前最为普遍的DJBX33A (Daniel J. Bernstein, Times 33 with Addition), 这个算法被广泛运用与多个软件项目,Apache, Perl和Berkeley DB等. 对于字符串而言这是目前所知道的最好的哈希算法,原因在于该算法的速度非常快,而且分类非常好(冲突小,分布均匀).
算法的核心思想就是:
1. hash(i) = hash(i-1) * 33 + str[i]
PHP的数组,关联数组,对象属性,函数表,符号表,等等都是用HashTable来做为容器的.
PHP的HashTable采用的拉链法来解决冲突, 这个自不用多说, 我今天主要关注的就是PHP的Hash算法, 和这个算法本身透露出来的一些思想.
PHP的Hash采用的是目前最为普遍的DJBX33A (Daniel J. Bernstein, Times 33 with Addition), 这个算法被广泛运用与多个软件项目,Apache, Perl和Berkeley DB等. 对于字符串而言这是目前所知道的最好的哈希算法,原因在于该算法的速度非常快,而且分类非常好(冲突小,分布均匀).
算法的核心思想就是:
1. hash(i) = hash(i-1) * 33 + str[i]
推荐阅读
-
PHP中全局变量$GLOBALS和global的区别
-
PHP中的Hash算法_PHP教程
-
[PHP] 算法-数组归并排序并计算逆序对的个数的PHP实现
-
[PHP] 算法-统计一个数字在排序数组中出现的次数的PHP实现
-
获取子class_id集合的函数_PHP教程
-
PHP对文本数据库的五大基本操作方法_PHP教程
-
测试XXTea算法,网上没有一个php版本能还原小弟我的字符串,太奇葩了
-
html网页中插入script脚本,src指向php文件,怎么在html中显示php返回的数据?求大神赐教。
-
PHP中spl_autoload_register函数的用法
-
php实现excel中rank函数功能的方法