分类目录: 算法数据结构
网传清华学子斩获6个互联网大厂Offer的面试题汇总
看到这些题目忍不住转过来,觉得能把这些都完整解答,功力不是一般深厚了。有具体的coding、大量算法还有一些常用的基础知识和原理等。
转自微信公众号:程序猿石头,PC版链接:羡慕,又一清华学弟斩获 6 个大厂 SSP Offer | 面经分享。
一致哈希(Consistent Hashing)简介
一致哈希 是一种特殊的哈希算法。在使用一致哈希算法后,哈希表槽位数(大小)的改变平均只需要对 K/n个关键字重新映射,其中 K是关键字的数量n是槽位数量。然而在传统的哈希表中,添加或删除一个槽位的几乎需要对所有关键字进行重新映射。一致哈希的算法最早在如下论文中被提出:
一致哈希在分布式计存储架构中无处不在。是被证明的可以解决经典哈希视图发生变化时,数据搬迁尽可能少的算法。最早是在分布式缓存中提出,参考如下文档,这里提供原文的下载链接:《Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web》。
《深度学习》—AI圣经,中文正式版本
转自:deeplearningbook-chinese 英文原版地址:deeplearningbook。GitHub上面的发布版本PDF文件存储在AWS S3上面,国内无法下载,因此拷贝了最新版本的放在此处:下载链接。
数据结构基础——B树
B树的定义,对于一个M阶的B树,有如下性质:
1、每个节点存储t个数值和t+1个子节点的索引。
2、根节点至少有[2, M]个子节点。即对于根节点,t的最大取值为M-1,如,5阶的B树,根节点最多有5个子节点。
3、非根非叶子节点,最多有M个子节点,M-1个数值。
2、非根非叶子节点,最少有M/2(向上取整)个子节点,M/2-1个数值。
4、叶子节点无索引,最多存储M-1个数值,最少存储M/2-1(向上取整)个数值。
5、所有叶子节点都处于同一深度。
如下图,是一个M=5的B-树。
Linux TCP Backlog机制分析
前一阵子遇到一个奇怪的问题,分析了很久,最后查阅了一些资料,找到了问题的原因,是TCP的backlog机制的原因。首先描述一下重现问题的现象和过程: 构建一个TCP的服务端,监听端口4321,只监听请求,不accept,客户端不断发起连接,观察TCP连接建立的情况。服务端程序代码如下:
Linux文件系统基础之inode和dentry
[转]图解分布式一致性协议Paxos
转载自:loop in codes
Paxos协议/算法是分布式系统中比较重要的协议,它有多重要呢?
<分布式系统的事务处理>:
Google Chubby的作者Mike Burrows说过这个世界上只有一种一致性算法,那就是Paxos,其它的算法都是残次品。
理解了这两个分布式协议之后(Paxos/2PC),学习其他分布式协议会变得相当容易。
学习Paxos算法有两部分:a) 算法的原理/证明;b) 算法的理解/运作。
CAP 理论
CAP理论被很多人拿来作为分布式系统设计的金律,然而感觉大家对CAP这三个属性的认识却存在不少误区。从CAP的证明中可以看出来,这个理论的成立是需要很明确的对C、A、P三个概念进行界定的前提下的。在本文中笔者希望可以对论文和一些参考资料进行总结并附带一些思考。
一、什么是CAP理论
CAP原本是一个猜想,2000年PODC大会的时候大牛Brewer提出的,他认为在设计一个大规模可扩放的网络服务时候会遇到三个特性:一致性(consistency)、可用性(Availability)、分区容错(partition-tolerance)都需要的情景,然而这是不可能都实现的。之后在2003年的时候,Mit的Gilbert和Lynch就正式的证明了这三个特征确实是不可以兼得的。