PHP的array实现方式直接用哈希表来实现,我只想说作者太他妈聪明啦,这篇文章介绍PHP中的hash算法,对以后自己的设计架构会很有帮助的。同时,PHP的弱类型的设计巧妙,真是可以参考的设计!PHP是世界上最好的WEB语言~~求不黑~~
在实践中使用的非常广泛,例如编译器通常会维护的一个符号表来保存标记,很多高级语言中也显式的支持哈希表。 哈希表通常提供查找(Search),插入(Insert),删除(Delete)等操作,这些操作在最坏的情况下和链表的性能一样为O(n)。 不过通常并不会这么坏,合理设计的哈希算法能有效的避免这类情况,通常哈希表的这些操作时间复杂度为O(1)。 这也是它被钟爱的原因。
解决HASH冲突的方法PHP使用的是链接法,也就是不同的key映射到同一个桶或者slot,就用链表来保存这个值,如果所有的KEY都映射到同一个槽,那也就是最坏的情况下的操作链表的复杂度O(n)。还有一种解决冲突的方法是开放寻址法,也就是如果某个桶的索引有值了,就去下个桶来索引,依次来查。
原文:http://www.nowamagic.net/librarys/veda/detail/1344
时间: 2024-10-27 13:22:47