脏数据php 脏数据的表现形式有哪些?( 六 )


性质5. 从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点 。
B树:
1.所有非叶子结点至多拥有两个儿子(Left和Right);
2.所有结点存储一个关键字;
3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;
6. 常见的加密算法?
对称式加密就是加密和解密使用同一个密钥 。
非对称式加密就是加密和解密所使用的不是同一个密钥 , 通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用 。
DES:对称算法,数据加密标准,速度较快,适用于加密大量数据的场合;
MD5的典型应用是对一段Message产生fingerprint(指纹),以防止被“篡改” 。
RSA是第一个既能用于数据加密也能用于数字签名的算法 。
7. https?
HTTP下加入SSL层,HTTPS的安全基础是SSL 。
8.有一个IP库,给你一个IP,如何能够快速的从中查找到对应的IP段?不用数据库如何实现?要求省空间
9.简述一致性hash算法 。
1)首先求memcached服务器(节点)的哈希值,并将其配置到0 232的圆(continuum) 。
2)然后采用同样的方法求出存储数据的键的哈希值,并映射到相同的圆上 。
3)然后从数据映射到的位置开始顺时针查找 , 将数据保存到找到的第一个服务器上 。如果超过232仍然找不到服务器,就会保存到第一台memcached服务器上 。
11.描述一种hash table的实现方法
1) 除法散列法: p,令 h(k ) = k mod p,这里,p 如果选取的是比较大的素数,效果比较好 。而且此法非常容易实现,因此是最常用的方法 。最直观的一种 , 上图使用的就是这种散列法,公式: index = value % 16,求模数其实是通过一个除法运算得到的 。
2) 平方散列法 :求index频繁的操作,而乘法的运算要比除法来得省时 。公式: index = (value * value)28 (右移,除以2^28 。记法:左移变大,是乘 。右移变?。浅?
3) 数字选择法:如果关键字的位数比较多,超过长整型范围而无法直接运算,可以选择其中数字分布比较均匀的若干位,所组成的新的值作为关键字或者直接作为函数值 。
4) 斐波那契(Fibonacci)散列法:平方散列法的缺点是显而易见的,通过找到一个理想的乘数index = (value * 2654435769)28
冲突处理:令数组元素个数为 S,则当 h(k) 已经存储了元素的时候,依次探查 (h(k)+i) mod S , i=1,2,3……,直到找到空的存储单元为止(或者从头到尾扫描一圈仍未发现空单元,这就是哈希表已经满了,发生了错误 。当然这是可以通过扩大数组范围避免的) 。
12、各类树结构的实现和应用
13、hash,任何一个技术面试官必问(例如为什么一般hashtable的桶数会取一个素数?如何有效避免hash结果值的碰撞)
不选素数的话可能会造成hash出值的范围和原定义的不一致
14.什么是平衡二叉树?
左右子树都是平衡二叉树,而且左右子树的深度差值的约对值不大于1 。
15.数组和链表的优缺点
数组,在内存上给出了连续的空间 。链表,内存地址上可以是不连续的,每个链表的节点包括原来的内存和下一个节点的信息(单向的一个 , 双向链表的话,会有两个) 。
数组优于链表的:
A. 内存空间占用的少 。
B. 数组内的数据可随机访问,但链表不具备随机访问性 。
C. 查找速度快
链表优于数组的:
A. 插入与删除的操作方便 。
B. 内存地址的利用率方面链表好 。
C. 方便内存地址扩展 。
17.最小堆插入,删除编程实现

推荐阅读