算法&数据结构
不能飞的肥燕
10多年IT经验,5年多阿里巴巴和百度等的工作经验,互联网相关技术娴熟扎实。
展开
-
对称/非对称加解密
对称加解密:需要对加密和解密使用相同密钥的加密算法。由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用。对称性加密也称为密钥加密。所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。密钥是控制加密及解密过程的指令。算法是一组规则,规定如何进行加密和解密。因此加密的安全性不仅取决于加密算法本身,密钥管理的安全性更是重要。因为加密和解密都使用同一个密钥,如何把密钥安全地传递到解密者手上就成了必须要解决的问题。常用算法在对称加密算法中常用的算法有:DES、3D.原创 2020-07-07 11:43:07 · 509 阅读 · 0 评论 -
跳表(SkipList)数据结构介绍
使用场景跳表(Skiplist)是一个特殊的链表,相比一般的链表,有更高的查找效率,可比拟二叉查找树,平均期望的查找、插入、删除时间复杂度都是O(logn),许多知名的开源软件(库)中的数据结构均采用了跳表这种数据结构。Redis中的有序集合zset LevelDB、RocksDB、HBase中Memtable ApacheLucene中的TermDictionary、Posting List跳表结构描述跳表可视为水平排列(Level)、垂直排列(Tower)的位置(Position,对E转载 2020-06-08 14:59:37 · 1167 阅读 · 0 评论 -
广告投放算法:受众行为分析与人群定向
引言“物以类聚,人以群分”这句古语不仅揭示了物与人的自组织趋向,更隐含了‘聚类’和‘人群’之间的内在联系。 例如在现代数字广告投放系统中,最为关键的‘人群定向’功能正是通过‘聚类’算法得以实现的。如果您厌倦了隔靴搔痒的空大宣传,不妨就随笔者一起钻进系统内核,抽丝剥茧般探究技术的黑盒,还原受众行为分析的真相。广告传递信息的受众是每个在浏览器前的自然人,然而互联网上的分析手段无法触达自转载 2015-02-10 14:26:25 · 17303 阅读 · 3 评论 -
连续子数组最大和问题
问题描述输入一个整形数组,求数组中连续的子数组使其和最大。比如,数组x应该返回 x[2..6]的和187.问题解决我们很自然地能想到穷举的办法,穷举所有的子数组的之和,找出最大值。穷举法i, j的for循环表示x[i..j],k的for循环用来计算x[i..j]之和。maxsofar = 0for i = [0, n) for j转载 2015-10-14 22:57:27 · 458 阅读 · 0 评论 -
从算法到案例:推荐系统必读的10篇精选技术文章
推荐系统近几年来一直十分火热,目前几乎所有的电子商务系统、社交网络,广告推荐,搜索引擎等等,都不同程度的使用了各种形式的推荐系统。想知道电商如何向你发送广告的?想了解社交网络怎么推荐好友的?想自己搭建一个推荐系统?想了解一些算法或架构从而将自己的推荐系统做得更好?InfoQ为你整理了一系列的有关推荐系统的算法文章,以及主要从电商和社交网络方面选取了一些优秀的案例,来看看这些关于推荐系统的优秀文章吧转载 2015-12-29 18:52:58 · 1277 阅读 · 0 评论 -
一致性哈希算法原理设计
原文出处: 知致智之 一.前言一致性哈希(Consistent Hashing),最早由MIT的Karger于1997年提出,主要用于解决易变的分布式Web系统中,由于宕机和扩容导致的服务震荡。现在这个算法思路被大量应用,并且在实践中得到了很大的发展。二.算法设计1.问题来源一个由6台服务器组成的服务,每台Server负责存储1/6的数据,当Server转载 2016-05-10 13:30:54 · 333 阅读 · 0 评论 -
负载均衡调度算法大全
负载主机可以提供很多种负载均衡方法,也就是我们常说的调度方法或算法:1、轮循(Round Robin)这种方法会将收到的请求循环分配到服务器集群中的每台机器,即有效服务器。如果使用这种方式,所有的标记进入虚拟服务的服务器应该有相近的资源容量 以及负载形同的应用程序。如果所有的服务器有相同或者相近的性能那么选择这种方式会使服务器负载形同。基于这个前提,轮循调度是一个简单而有效的分配请转载 2016-06-07 16:21:40 · 439 阅读 · 0 评论 -
分布式一致性算法--Paxos
Paxos算法是莱斯利·兰伯特(Leslie Lamport)1990年提出的一种基于消息传递的一致性算法。Paxos算法解决的问题是一个分布式系统如何就某个值(决议)达成一致。在工程实践意义上来说,就是可以通过Paxos实现多副本一致性,分布式锁,名字管理,序列号分配等。比如,在一个分布式数据库系统中,如果各节点的初始状态一致,每个节点执行相同的操作序列,那么他们最后能得到一个一致的状态。为保证转载 2018-01-25 14:10:44 · 375 阅读 · 0 评论 -
PAXOS算法的理解
1.分布式系统定义分布式系统是这样一种系统,它的各个组件分布在联网的若干台计算机上,通过传递消息进行相互通信和协同工作。特点并发性:在没有协同的情况下,组件各自行事。没有全局时钟:目前的时间同步精度不够。故障无处不在:总是会发生各种各样的故障。2.Paxos算法解决的问题是分布式系统如何对一个问题达成共识。3.Paxos算法中的角色原创 2018-01-25 14:31:13 · 403 阅读 · 0 评论 -
paxos
这是一篇讲解很详细的文章不那么理论化https://wenku.baidu.com/view/21e21e1c04a1b0717fd5ddf4.html转载 2021-01-07 13:49:52 · 261 阅读 · 0 评论 -
geohash算法原理及实现方式
1、geohash特点2、geohash原理3、geohash的php 、python、java、C#实现代码4、观点讨论 w微博:http://weibo.com/dxl0321geohash有以下几个特点:首先,geohash用一个字符串表示经度和纬度两个坐标。某些情况下无法在两列上同时应用索引 (例如MySQL 4之前的版本,Google App Engine的数据层转载 2015-03-10 17:51:36 · 1050 阅读 · 0 评论 -
海量数据处理 算法总结
1. Bloom Filter【Bloom Filter】Bloom Filter(BF)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。它是一个判断元素是否存在集合的快速的概率算法。Bloom Filter有可能会出现错误判断,但不会漏掉判断。也就是Bloom Filter判断元素不再集合,那肯定不在。如果判断元素存在集合中,转载 2015-03-06 14:04:04 · 532 阅读 · 0 评论 -
曼哈顿距离 VS 欧氏距离 VS 切比雪夫距离
1. 曼哈顿距离 VS 欧氏距离出租车几何或曼哈顿距离(Manhattan Distance)是由十九世纪的赫尔曼·闵可夫斯基所创词汇 ,是种使用在几何度量空间的几何学用语,用以标明两个点上在标准坐标系上的绝对轴距总和。图中红线代表曼哈顿距离,绿色代表欧氏距离,也就是直线距离,而蓝色和黄色代表等价的曼哈顿距离。2. 切比雪夫距离数学上,切比雪夫距离[1](Chebys原创 2013-03-18 17:19:37 · 4532 阅读 · 0 评论 -
收藏: 十三个经典算法研究与总结、目录+索引
十三个经典算法研究与总结、目录+索引「后续更新为十五个」 (PDF下载地址:http://download.csdn.net/detail/v_july_v/4478027)作者:July。时间:二零一零年十二月末-二零一一年四月初。出处:http://blog.csdn.net/v_JULY_v。声明:版权所有,侵权定究。----------转载 2013-03-18 18:05:49 · 861 阅读 · 0 评论 -
一致性hash算法 - consistent hashing
一致性 hash 算法( consistent hashing )张亮consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前在cache 系统中应用越来越广泛;1 基本场景比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N转载 2014-09-16 12:00:58 · 531 阅读 · 0 评论 -
BITMAP的秘密——周海鹏 TALKINGDATA研发副总裁
之前已经参加过几次QCon峰会,不过今年QCon 2014 上海峰会对我来说比较特别,不再只是一名听众,而是第一次登台演讲。感觉的确不太一样,一来是身份从听众变成了讲师,二来是因为成了讲师,让我接触到更多的业内朋友,也遇到了更多的提问、咨询。会后已经有一段时间了,还有朋友提出想了解更多的技术知识。看来会上行云流水的半个小时,未能把一个技术点讲述明白,我想还是总结一下,让技术圈朋友们对Bitmap这转载 2015-01-28 16:30:38 · 1191 阅读 · 0 评论 -
五种常用基数估计算法效果实验及实践建议
之前我曾写过一系列关于基数估计(cardinality estimation)算法的文章,文中介绍了一些常用基数估计算法的原理。最近对常用的基数估计算法做了一些实验,这篇文章描述了实验结果,包括这些算法的估计效果及误差状况,主要通过图表展示。通过观察实验数据和可视化图表可以加强对各种基数估计算法理论分析的直观理解。文章首先会对实验做一些说明,然后通过图表详细展示实验数据,最后会根据实验结果转载 2015-01-14 14:06:16 · 3639 阅读 · 0 评论 -
广告定向之再营销
广告定向之再营销2014/08/08计算广告学再营销、定向、广告lorylin什么是再营销广告定向再营销是利用用户在互联网上的行为进行精准定向的广告策略。其中的行为可能包含浏览网页、搜索商品、查看感兴趣的商品信息、将有强烈购买意图的商品放入购物车等等,而“再”的意思则是指将用户感兴趣的商品信息以广告的形式再次展现在他面前。一个典型的再营销场景我们来看下面一个例子转载 2015-03-03 16:48:12 · 1050 阅读 · 0 评论 -
Peacock:大规模主题模型及其在腾讯业务中的应用
Peacock:大规模主题模型及其在腾讯业务中的应用2015/03/02分布式计算、机器学习、自然语言处理LDA、Peacock、数据并行、模型并行xueminzhaoPeacock:大规模主题模型及其在腾讯业务中的应用作者:赵学敏 王莉峰 王流斌 孙振龙 严浩 靳志辉 王益摘要如果用户最近搜索了“红酒木瓜汤”,那么应该展示什么样的广告呢?从字面上理解,可能应该转载 2015-03-03 16:46:44 · 1651 阅读 · 0 评论 -
BloomFilter——大规模数据处理利器
Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法。通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求100%正确的场合。 一. 实例 为了说明Bloom Filter存在的重要意义,举一个实例: 假设要你写一个网络蜘蛛(web crawler)。由于网络间的链接错综复杂,蜘蛛在网络间爬行很可能会形成“环”。转载 2015-03-06 14:00:32 · 388 阅读 · 0 评论 -
海量数据处理算法—Bloom Filter
1. Bloom-Filter算法简介 Bloom-Filter,即布隆过滤器,1970年由Bloom中提出。它可以用于检索一个元素是否在一个集合中。 Bloom Filter(BF)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。它是一个判断元素是否存在集合的快速的概率算法。Bloom Filter有转载 2015-03-06 14:03:04 · 512 阅读 · 0 评论 -
A星寻路算法介绍
这篇文章还可以在这里找到 英语Tweet这篇blog是由iOS Tutorial Team的成员 Johann Fradj发表的,他目前是一位全职的资深iOS开发工程师。他是Hot Apps Factory的创始人,该公司开发了App Cooker。 学习A星寻路算法是如何工作的!你是否在做一款游戏的时候想创造一些怪兽或者游戏主转载 2013-03-18 16:58:38 · 2634 阅读 · 0 评论