算法&数据结构
yfk
这个作者很懒,什么都没留下…
展开
-
算法:求去重后元素个数
给出一个整型数组,计算去重后元素个数eg:int a[] = {1,2,3,1,2,3,3}; 去重后元素个数为3方法1:暴力check是否重复,复杂度O(n^2)对于a[m],顺序比较a[m-1],a[m-2].....a[0],全部不重复,去重原创 2011-09-08 16:42:34 · 4067 阅读 · 1 评论 -
用MapReduce做相似度分析
Q:有一批数据(10亿量级),数据内容包括:列类型id INTcontent Stringid为key,全局唯一content为一个句子列之间以\t分割like:1 “互联网够公司的日志无处不在,web日志,js日志,搜索日志,监控日志等等”2 "对于这些日志的离线分析(Hadoop),wget&r原创 2013-12-23 19:32:34 · 15664 阅读 · 1 评论 -
Bloom Filter算法及应用
1. 引言问题:有1000瓶药,但是其中有一瓶是有毒的,小白鼠吃了24小时后就会死掉,请问,在24小时找出有毒的药物,最少需要多少只小白鼠?答案是:10只,一只小白鼠可以表示2种状态,2^10可以表示1024种状态分析可参考:http://lzj0470.iteye.com/blog/657579通过二进制向量组来扩展描述的状态,Bloom Filter(BF)算法也是利用这个思想原创 2011-11-08 23:31:01 · 3073 阅读 · 0 评论 -
数据库索引
概念:索引是由用户创建的、能够被修改和删除的、实际存储于数据库中的物理存在;创建索引的目的是使用户能够从整体内容直接查找到某个特定部分的内容。优缺点:一般来说,索引能够提高查询,但是会增加额外的空间消耗,并且降低删除、插入和修改速度分类:1.聚集索引:表数据按照索引的顺序来存储的。2.非聚集索引:表数据存储顺序与索引顺序无关。由于聚集索引表的数据需要按照索引的顺原创 2012-03-14 21:09:02 · 5724 阅读 · 0 评论 -
Gossip算法学习
1. 概述gossip,顾名思义,类似于流言传播的概念,是一种可以按照自己的期望,自行选择与之交换信息的节点的通信方式gossip, or anto-entropy, is an attractive way of replicating state that does not have strong consistency requirements2. 算法描述假设有原创 2011-11-07 16:48:57 · 16618 阅读 · 1 评论 -
Distributed hash table
1. 概念A distributed hash table (DHT) is a class of a decentralized distributed system that provides a lookup service similar to a hash table。 (key,value) pairs are stored in a DHT, and any participat原创 2011-11-17 13:41:38 · 5286 阅读 · 0 评论 -
分布式一致性算法:Paxos (学习总结)
1. 概述Google Chubby 的作者Mike Burrows:“There is only one consensus protocol, and that's Paxos”-all other approaches are just broken versions of Paxos意即:世界上只有一种一致性算法,那就是Paxos(帕克索斯),所有其它一致性算法都是Paxos算法的原创 2011-11-15 14:39:36 · 9185 阅读 · 3 评论 -
Vector Clock理解
背景最近在重读“Dynamo: Amazon’s Highly Available Key-value Store”(经典好文,推荐!),文章4.4 中聊到了Data Version为了提高可用性,Dynamo允许“更新”操作异步的传播到其他副本,当出现多个写事件并发执行时,可能会导致系统中出现多个版本的对象。由于我们无法保证分布式系统中的多个结点的物理时钟是完美同步的,所以通过物理时钟来确定事件原创 2014-10-10 19:43:46 · 10652 阅读 · 0 评论