想象这样一种状况,咱们设计了一个网络爬虫,咱们爬到了几十亿(甚至几百亿)个url,为了加快爬取的速度,对于相同的url,咱们的爬虫将再也不进行重复下载。这时候,如何快速在由数十亿个元素组成的集合中快速发现是否有重复的元素?布隆提出了一种复杂度为O(1)的查找算法——Bloom Filter。html
布隆过滤器(英语:Bloom Filter)是1970年由布隆提出的。它其实是一个很长的二进制向量和一系列随机映射函数。布隆过滤器能够用于检索一个元素是否在一个集合中。它的优势是空间效率和查询时间都远远超过通常的算法,缺点是有必定的误识别率和删除困难。git
虽然存在必定的偏差,可是在大规模应用的状况下,布隆过滤器,经过HASH和创建二进制向量,可以很是出色地完成一些工做,在暑假,我和同窗进一步拓展了布隆的工做,将其实现了Bloom Filter的分布式部署。算法
做者在文章中从信息论角度讨论了排序算法时间复杂度的下限,角度仍是挺新奇的,尤为是见到熟悉的交叉熵,除了用在神经网络算法里面,信息论还能用来计算算法复杂度。而后做者还介绍了一种来自Concrete Math特别酷炫的计算快速排序算法复杂度的方法,我浑沦吞枣的看完了,思路确实是很是精彩。
网络
没有问题。数据结构
没有问题。分布式
这周过的很仓促,连着几天熬夜,很大部分的时间都用来忙校庆了。由于全身心地献给祖国献给党,因此学习上就无法兼顾,包括请了一节程序设计课的假。但愿下周开始好好学习,fighting💪函数
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | - | 1 | 10 | |
第一周 | - | 2 | 20 |
计划学习时间:20小时学习
实际学习时间:10小时ui
改进状况:url