了解:
1、Arrays.mergeSort排序算法
2、BigInteger的实现原理
3、红黑树的添加和删除操作实现
4、Collections各方法的相关实现
5、ORACLE怎么查找db_cache pool中的block,比如全表扫描怎么查找到所有的block。
6、学习apache,memcached、webservice、MYSQL
大数据量处理算法:
1. Bloom Filter
2. Hash
3. Bit-Map
4. 堆
5. 双层桶划分
6. 数据库索引
7. 倒排索引(Inverted Index)
8. 外排序
9. Trie树
10. MapReduce
1、bloom filter
转载:http://www.hellodba.net/2009/04/bloom_filter.html
设想以下的一个问题:有一个keyword的集合,我们需要快速判定某个keyword是否包含在其中。最简单的方法是遍历,但是效率很差。我们马上想到了hash的方法,因为在Oracle内部,hash无处不在。比如在cache buffer中找到某个block,在shared pool中找到某个SQL等等。我们可以把keyword的集合build成一个hash table,然后根据keyword计算hash值,通过是否落在相应的hash bucket中,这样就可以实现快速查找的目的。这个方法不错,但是当keyword过多时,hash table会占用大量内存,效率也会随之下降。
今天公司的架构师介绍了一个新的方法给我:Bloom Filter。它是一种基于随机数(或Hash)的数据结构,它支持对成员使用较少空间来存储,却能得到较高效率的查询。换句话说:在Bloom Filter 可以用于检索一个元素是否在一个集合中。其原理如下:
建立一个容量为500万的Bit Array结构(Bit Array的大小和keyword的数量决定了误判的几率),将集合中的每个keyword通过32个hash函数分别计算出32个数字,然后对这32个数字分别用500万取模,然后将Bit Array中对应的位置为1,我们将其称为特征值。简单的说就是将每个keyword对应到Bit Array中的32个位置上,见下图:
当需要快速查找某个keyword时,只要将其通过同样的32个hash函数运算,然后映射到Bit Array中的对应位,如果Bit Array中的对应位全部是1,那么说明该keyword匹配成功。
Bloom filter 是一个集合的有损编码,所以它不是一种“保险”的方案,存在一定的误判率。
另参考:http://blog.csdn.net/jiaomeng/archive/2007/01/27/1495500.aspx
========================================================================
1、在一条街上,有5座房子,喷了5种颜色。
2、每个房里住着不同国籍的人
3、每个人喝不同的饮料,抽不同品牌的香烟,养不同的宠物
问题是:谁养鱼?
提示:
1、英国人住红色房子
2、瑞典人养狗
3、丹麦人喝茶
4、绿色房子在白色房子左面
5、绿色房子主人喝咖啡
6、抽Pall Mall 香烟的人养鸟
7、黄色房子主人抽Dunhill 香烟
8、住在中间房子的人喝牛奶
9、 挪威人住第一间房
10、抽Blends香烟的人住在养猫的人隔壁
11、养马的人住抽Dunhill 香烟的人隔壁
12、抽Blue Master的人喝啤酒
13、德国人抽Prince香烟
14、挪威人住蓝色房子隔壁
15、抽Blends香烟的人有一个喝水的邻居
以上是爱因斯坦在20世纪初出的这个谜语。他说世界上有98%的人答不出来。
你能做出来吗?
- 大小: 31.7 KB
分享到:
相关推荐
待办事项清单 待完成任务的个人列表,这些任务列表被一个一个地打勾。 加上管理员的用户和列表管理。
本软件具有添加新任务,删除已完成任务,设置提醒功能,并可以自定义任务紧急程度的软件。无任务时,会有提示信息。
待完成任务:显示今日往后的未完成任务,并对任务操作,如新建、取消、完成、接受 未完成任务:显示今日以前的未完成任务 已完成任务:显示完成的任务 我的发起任务:显示所有我发起的任务,其中包括我仅发起而...
待完成任务:显示今日往后的未完成任务,并对任务操作,如新建、取消、完成、接受 未完成任务:显示今日以前的未完成任务 已完成任务:显示完成的任务 我的发起任务:显示所有我发起的任务,其中包括我仅发起而...
待完成任务:显示今日往后的未完成任务,并对任务操作,如新建、取消、完成、接受 未完成任务:显示今日以前的未完成任务 已完成任务:显示完成的任务 我的发起任务:显示所有我发起的任务,其中包括我仅发起而...
待完成任务:显示今日往后的未完成任务,并对任务操作,如新建、取消、完成、接受 未完成任务:显示今日以前的未完成任务 已完成任务:显示完成的任务 我的发起任务:显示所有我发起的任务,其中包括我仅发起而...
待完成任务:显示今日往后的未完成任务,并对任务操作,如新建、取消、完成、接受 未完成任务:显示今日以前的未完成任务 已完成任务:显示完成的任务 我的发起任务:显示所有我发起的任务,其中包括我仅发起而不...
待完成任务:显示今日往后的未完成任务,并对任务操作,如新建、取消、完成、接受 未完成任务:显示今日以前的未完成任务 已完成任务:显示完成的任务 我的发起任务:显示所有我发起的任务,其中包括我仅发起而...
<br>10、修改了我的任务,其功能包括:待完成任务、未完成任务、已完成任务、预警任务、警告任务、我的发起、任务下达、任务统计; <br>11、为邮件发送、公文发送、工作流及审批、通知公告等增加了手机短信...
•按特定顺序从列表中完成任务 •依赖关系:MLO 可以处理顺序和并行项目,保留在其他任务完成之前无法启动的任务。 •日历视图:分析您的日常工作量 •附近视图:获取当前 GPS 位置的操作列表,并在您到达该位置时...
将一项任务分成待完成、已完成、正在做、未完成四个类别,方便日程生活中的管理 截图 你可以在这里下载安装程序 License Copyright 2015 csulennon Licensed under the Apache License, Version 2.0 (the "License")...
每周任务一个Webapp,用于管理您每周必须处理的任务。 如果清除任务,将在一周后生成任务。 框架,语言等Ruby 2.7.0 Ruby on Rails 5.1.7 Vue.js 威化Axios 规格AWS EC2 2020/07/31 修复了响应式设计错误2020/09/28 ...
是一个强大的待办事项和任务管理应用,它可以在您的所有设备上进行无缝云端同步。无论是计划行程、做备忘录、与家庭成员分享购物清单还是与您的同事协作,...共享协作:与家人、好友和同事共享清单,多人协同完成任务。
加入1,000,000+的忠实用户团队,使用Todoist完成更多工作任务----这是领先的待办事项列表和个人任务管理器! 正如TechCrunch、纽约时报、Lifehacker、ReadWriteWeb和其他媒体所描述的经典特色一样,Todois
周报模板,大家可以对自己本周工作进行汇报总结,并且计划下周待完成任务。
公共档案 ...讨论本周待完成任务 分配任务和人员 下周事务安排 确认主持人和秘书 项目总览 甘特及时间线回顾更新 会后事项 主持人更新timeline中该周工作,记录遇到的问题,总结反思 主持人发送该周完成的
微信小程序版小时钟 设置待完成任务,设定自定义时间,专注工作时间的。 主要组成有: 统计专注时长,选择任务区,设置时间区,倒计时页面 主要技术涉及:微信小程序
如出现报错,可先将admin.py中最后一行的clear_job()注释掉,待数据库构建完成后再解除注释即可。 使用python3 manage.py createsuperuser指令完成后端管理员账号的创建 直接使用python3 manage.py runserver 0.0....
待办事项清单 待办事项列表应用程序,用于标记已完成和待处理的任务