202301-31 简单讲解哈希表 目录一、哈希表的概念1、查找算法2、哈希表3、哈希数组4、关键字5、哈希函数6、哈希冲突7、哈希地址二、常用哈希函数1、直接定址法2、平方取中法3、折叠法4、除留余数法5、位与法三、常见哈希冲突解决方案1、开放定址法1)原理讲解2)动画演示2、再散列函数法1)原理讲解2)动画演示3、链地址法1)原理讲解2)动画演示4、公共溢出区法1)原理讲解2)动画演示四、哈希表的实现1、数据结构定义2、哈希表初始化3、哈希函数计算4、哈希... 继续阅读 >
202108-25 深入理解Java中的HashMap 目录一、HashMap的结构图示二、HashMap的成员变量以及含义2.1、hash方法说明2.2、tableSizeFor方法说明三、HashMap的构造方法四、HashMap元素在数组中的位置五、HashMap的put方法分析5.1、put方法源码分析5.2、put方法执行过程总结六、HashMap的resize方法分析6.1、resize方法源码6.2、(e.hash&oldCap)==0分析6.3、部分代码理解6.4、resize总结七、HashMap的get方法分析7.1、get方法源码一、HashMap的结构图示本文主要... 继续阅读 >
202012-10 PHP哈希表实现算法原理解析 在PHP内核中,其中一个很重要的数据结构就是HashTable。我们常用的数组,在内核中就是用HashTable来实现。那么,PHP的HashTable是怎么实现的呢?最近在看HashTable的数据结构,但是算法书籍里面没有具体的实现算法,刚好最近也在阅读PHP的源码,于是参考PHP的HashTable的实现,自己实现了一个简易版的HashTable,总结了一些心得,下面给大家分享一下。HashTable的介绍哈希表是实现字典操作的一种有效数据结构。定义简单地说,HashT... 继续阅读 >
201805-07 机器学习时代的哈希算法,将如何更高效地索引数据 哈希算法一直是索引中最为经典的方法,它们能高效地储存与检索数据。但在去年12月,JeffDean与MIT等研究者将索引视为模型,探索了深度学习模型学习的索引优于传统索引结构的条件。本文首先将介绍什么是索引以及哈希算法,并描述在机器学习与深度学习时代中,如何将索引视为模型学习比哈希算法更高效的表征。2017年12月,谷歌和麻省理工学院的研究人员发表了一篇研究论文TheCaseforLearnedIndexStructures,... 继续阅读 >
201411-07 PHP内核探索 —— 变量存储与类型 先回答前面一节的那个问题吧。<?php$foo=10;$bar=20;functionchange(){global$foo;//echo'函数内部$foo='.$foo.'<br/>';//如果不把$bar定义为global变量,函数体内是不能访问$bar的$bar=0;$foo++;}change();echo$foo,'',$bar;?>程序输出1120。原因是,方法内部无法访问$bar变量,所以它的值还是20。使用global之后,可以取得$foo的值,自增后$foo的值就是11。Global的作用是定义全局变量,但... 继续阅读 >
201411-07 PHP内核探索 —— PHP中的哈希表:哈希表是PHP实现中尤为关键的数据结构 PHP中使用最为频繁的数据类型非字符串和数组莫属,PHP比较容易上手也得益于非常灵活的数组类型。在开始详细介绍这些数据类型之前有必要介绍一下哈希表(HashTable)。哈希表是PHP实现中尤为关键的数据结构。哈希表在实践中使用的非常广泛,例如编译器通常会维护的一个符号表来保存标记,很多高级语言中也显式的支持哈希表。哈希表通常提供查找(Search),插入(Insert),删除(Delete)等操作,这些操作在最坏的情况下和链表的性能一... 继续阅读 >
201411-07 PHP内核探索 —— 理解Zend里的哈希表 在PHP的Zend引擎中,有一个数据结构非常重要,它无处不在,是PHP数据存储的核心,各种常量、变量、函数、类、对象等都用它来组织,这个数据结构就是HashTable。HashTable在通常的数据结构教材中也称作散列表,哈希表。其基本原理比较简单(如果你对其不熟悉,请查阅随便一本数据结构教材或在网上搜索),但PHP的实现有其独特的地方。理解了HashTable的数据存储结构,对我们分析PHP的源代码,特别是ZendEngine中的虚拟机的实现时... 继续阅读 >