算法
maikelsong
这个作者很懒,什么都没留下…
展开
-
MurmurHash
看Jedis的主键分区哈希时,看到了名字很萌很陌陌的MurmurHash,谷歌一看才发现Redis,Memcached,Cassandra,HBase,Lucene都用它。转载 2016-07-04 17:01:15 · 529 阅读 · 0 评论 -
一致性哈希算法与Java实现
一致性哈希算法是分布式系统中常用的算法。比如,一个分布式的存储系统,要将数据存储到具体的节点上,如果采用普通的hash方法,将数据映射到具体的节点上,如key%N,key是数据的key,N是机器节点数,如果有一个机器加入或退出这个集群,则所有的数据映射都无效了,如果是持久化存储则要做数据迁移,如果是分布式缓存,则其他缓存就失效了。 因此,引入了一致性哈希算法:转载 2016-07-04 17:13:13 · 276 阅读 · 0 评论 -
海量数据处理算法—Bloom Filter
1. Bloom-Filter算法简介 Bloom-Filter,即布隆过滤器,1970年由Bloom中提出。它可以用于检索一个元素是否在一个集合中。 Bloom Filter(BF)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。它是一个判断元素是否存在集合的快速的概率算法。Bloom Filter有转载 2016-07-04 17:52:08 · 326 阅读 · 0 评论 -
海量数据处理 算法总结
1. Bloom Filter【Bloom Filter】Bloom Filter(BF)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。它是一个判断元素是否存在集合的快速的概率算法。Bloom Filter有可能会出现错误判断,但不会漏掉判断。也就是Bloom Filter判断元素不再集合,那肯定不在。如果判断元素存在集合中,转载 2016-07-04 17:53:53 · 1226 阅读 · 0 评论 -
海量数据处理
海量数据处理是基于海量数据上的存储、处理、操作。 所谓海量,就是数据量很大,可能是TB级别甚至是PB级别,导致无法一次性载入内存或者无法在较短时间内处理完成。面对海量数据,我们想到的最简单方法即是分治法,即分开处理,大而化小,小而治之。我们也可以想到集群分布式处理。1 海量数据的存储:为大数据分析做准备传统关系型数据库转载 2016-07-04 18:21:03 · 367 阅读 · 0 评论 -
海量数据处理算法—Bit-Map
1. Bit Map算法简介 来自于《编程珠玑》。所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。2、 Bit Map的基本思想 我们先来看一个具体的例子,假设我们要对0-7内的5个元素(4,7,2,5,3)排序(这转载 2016-07-04 18:22:02 · 235 阅读 · 0 评论 -
位运算符及其应用
一、C语言的六种位运算符:& 按位与| 按位或^ 按位异或~ 取反左移>> 右移 1. 按位与运算按位与运算符"&"是双目运算符。 其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。例如:9&5可写算式如下: 0000转载 2016-07-04 18:22:42 · 278 阅读 · 0 评论 -
JDK DualPivotQuicksort 源码解析
参考自:论文,Dual-Pivot Quicksort algorithm ,by Vladimir Yaroslavskiy。http://www.sytarena.com/javajswz/20140217/1329.html DualPivotQuicksort是JDK1.7开始的采用的快速排序算法。一般的快速排序采用一个枢轴来把一个数组划分成两半,然后递归之。转载 2016-11-23 17:45:21 · 754 阅读 · 0 评论 -
九大基础排序总结与对比
请尊重个人劳动成果,转载注明出处,谢谢! http://blog.csdn.net/amazing7/article/details/51603682##一、对比分析图均按从小到大排列k代表数值中的”数位”个数n代表数据规模m代表数据的最大值减最小值 稳定性:稳定排序算法会让原本转载 2016-11-23 17:49:07 · 463 阅读 · 0 评论