数据结构
程序员姜戈
专注于云计算、存储、分布式数据库技术栈,分享Linux、网络、安全、编程语言、算法、架构等技术干货。欢迎关注个人公众号[云计算通俗讲义]!
展开
-
面试官问我:什么是布隆过滤器?
01背景 假如需要过滤某些不安全网页,现有100亿个黑名单页面,每个网页的URL最多占用64字节。现要设计一种网页过滤系统,可以根据网页的URL判断该网页是否在黑名单上,要求该系统允许有万分之一以下的判断错误率,并且使用的额外空间不要超过30G。 可以采用如下几种方案: 1、将访问过的URL保存到数据库 每次需要过滤网页就需要启用一个数据库select查询,且当数据量变得非常庞大后,关系型数据库查询的效率会变得很低。 2、用HashSet将访问过的URL保...原创 2020-11-15 00:20:19 · 162 阅读 · 0 评论 -
哈希表原理及应用
01背景 假设某大学有10000名同学,每个人的学号是由学院-年级-班级-序号组成,例如学号为16140113表示是16系,14级1班的13号。为了快速查找到13号的成绩信息,可以建立一张表,但是不能用学号作为下标,学号的数值实在太大。因此将学号除以1100100取余,即得到编号作为该表的下标,那么,要查找学号为16140113的成绩的时候,只要直接访问表下标为13的数据即可。这就能够在O(1)时间复杂度内完成成绩查找。实际上这里就用到了散列的思想。 02概述 理想散列表(哈希表)...原创 2020-11-14 00:05:21 · 404 阅读 · 0 评论