随笔分类 -  算法

摘要:TopK问题 全局排序,取前K个 局部排序,只排序K个数,冒泡 堆,TopK个数也不排序了,最小堆 随机选择 + partition 全局排序,取前K个 局部排序,只排序K个数,冒泡 堆,TopK个数也不排序了,最小堆 随机选择 + partition 分治法,每个分支“都要”递归,例如:快速排序, 阅读全文
posted @ 2019-02-19 10:48 wade&luffy 阅读(307) 评论(0) 推荐(0) 编辑
摘要:常见的限流算法有:令牌桶、漏桶、计数器。 令牌桶限流 令牌桶是一个存放固定容量令牌的桶,按照固定速率往桶里添加令牌,填满了就丢弃令牌,请求是否被处理要看桶中令牌是否足够,当令牌数减为零时则拒绝新的请求。令牌桶允许一定程度突发流量,只要有令牌就可以处理,支持一次拿多个令牌。令牌桶中装的是令牌。 漏桶限 阅读全文
posted @ 2018-03-01 19:55 wade&luffy 阅读(392) 评论(0) 推荐(0) 编辑
摘要:哈夫曼编码 哈夫曼编码(Huffman Coding)是一种编码方式,也称为“赫夫曼编码”,是David A. Huffman1952年发明的一种构建极小多余编码的方法。在计算机数据处理中,哈夫曼编码使用变长编码表对源符号进行编码,出现频率较高的源符号采用较短的编码,出现频率较低的符号采用较长的编码 阅读全文
posted @ 2018-01-05 10:12 wade&luffy 阅读(1307) 评论(0) 推荐(1) 编辑
摘要:Prim Algorithm。这个算法可以分为下面几个步骤: 将顶点集V分成两个集合A和B,其中集合A表示目前已经在MST中的顶点,而集合B则表示目前不在MST中的顶点。 在B寻找与集合A连通的最短的边(u,v),将这条边加入最小生成树中。(此时,与(u,v)相连的顶点,不妨设为C,也应加入集合A中 阅读全文
posted @ 2017-11-27 16:36 wade&luffy 阅读(196) 评论(0) 推荐(0) 编辑
摘要:BFPRT算法的作者是5位真正的大牛(Blum 、 Floyd 、 Pratt 、 Rivest 、 Tarjan)。 BFPRT解决的问题十分经典,即从某n个元素的序列中选出第k大(第k小)的元素,通过巧妙的分析,BFPRT可以保证在最坏情况下仍为线性时间复杂度。 步骤 终止条件:n=1 时,返回 阅读全文
posted @ 2017-11-03 11:25 wade&luffy 阅读(3317) 评论(0) 推荐(0) 编辑
摘要:深度优先搜索算法(Depth-First-Search),是搜索算法的一种。它沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所有边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点, 则选择其中一个作为源 阅读全文
posted @ 2017-11-02 21:34 wade&luffy 阅读(619) 评论(0) 推荐(0) 编辑
摘要:广度优先搜索算法(Breadth-First-Search),是一种图形搜索算法。 简单的说,BFS是从根节点开始,沿着树(图)的宽度遍历树(图)的节点。如果所有节点均被访问,则算法中止。BFS同样属于盲目搜索。一般用队列数据结构来辅助实现BFS算法。 算法步骤: 1. 首先将根节点放入队列中。 2 阅读全文
posted @ 2017-11-02 21:31 wade&luffy 阅读(804) 评论(0) 推荐(1) 编辑
摘要:迪杰斯特拉算法是从一个顶点到其余各顶点的最短路径算法,解决的是有向图中最短路径问题。迪杰斯特拉算法主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。 算法思想:设G=(V,E)是一个带权有向图,把图中顶点集合V分成两组,第一组为已求出最短路径的顶点集合(用S表示,初始时S中只有一个源点,以后 阅读全文
posted @ 2017-10-31 19:58 wade&luffy 阅读(1040) 评论(0) 推荐(0) 编辑
摘要:随机森林(Random Forest,简称RF)拥有广泛的应用前景,从市场营销到医疗保健保险,既可以用来做市场营销模拟的建模,统计客户来源,保留和流失,也可用来预测疾病的风险和病患者的易感性。 随机森林就是通过集成学习的思想将多棵树集成的一种算法,它的基本单元是决策树,而它的本质属于机器学习的一大分 阅读全文
posted @ 2017-10-26 10:31 wade&luffy 阅读(692) 评论(0) 推荐(0) 编辑
摘要:一致性哈希可以有效解决分布式存储结构下动态增加和删除节点所带来的问题。 一致性hash算法提出了在动态变化的Cache环境中,判定哈希算法好坏的四个定义: 环形Hash空间 按照常用的hash算法来将对应的key哈希到一个具有2^32次方个桶的空间中,即0~(2^32)-1的数字空间中。现在我们可以 阅读全文
posted @ 2017-10-25 10:34 wade&luffy 阅读(489) 评论(0) 推荐(0) 编辑
摘要:转自:http://wudashan.cn/2017/09/04/Company-Programming-Competition/ 深度优先搜索算法(对所有选项一视同仁) 递归遍历所有可能性,并找出所需的结果。时间复杂度指数级。 贪心算法(选最有利于所需结果的那个选项往下进行) 每次都走出路最少的格 阅读全文
posted @ 2017-10-24 11:24 wade&luffy 阅读(297) 评论(0) 推荐(0) 编辑
摘要:动态规划(Dynamic Programming)是一种分阶段求解决策略问题的思想。 动态规划中包含三个重要的概念: 题目: 有一座高度是10级台阶的楼梯,从下往上走,每跨一步只能向上1级或者2级台阶。要求用程序来求出一共有多少种走法。(此题是动态规划中最简单的问题,因为只有一个变化维度) 比如,每 阅读全文
posted @ 2017-10-24 10:18 wade&luffy 阅读(346) 评论(0) 推荐(0) 编辑
摘要:BloomFilter算法,是一种大数据排重算法。在一个数据量很大的集合里,能准确断定一个对象不在集合里;判断一个对象有可能在集合里,而且占用的空间不大。它不适合那种要求准确率很高的情况,零错误的场景。通过牺牲部分准确率达到高效利用空间的目的。 场景一:假如有一个很大的表,通过字段key查询数据,操 阅读全文
posted @ 2017-10-24 09:27 wade&luffy 阅读(377) 评论(0) 推荐(0) 编辑
摘要:调频96.8有一种游戏:游戏中,出题者写下一件东西,其他人需要猜出这件东西是什么。当然,如果游戏规则仅此而已的话,几乎是无法猜出来的,因为问题的规模太大了。为了降低游戏的难度,答题者可以向出题者问问题,而出题者必须准确回答是或者否,答题者依据回答提出下一个问题,如果能够在指定次数内确定谜底,即为胜出 阅读全文
posted @ 2017-10-23 20:13 wade&luffy 阅读(549) 评论(0) 推荐(0) 编辑
摘要:位图算法,内存中连续的二进制位bit,用于对大量整型数据做去重和查询。 举个例子,给定一块长度是10bit的内存空间,依次插入4,3,2,1,怎么存储? 1. 给定长度是10的bitmap,每一个bit位分别对应着从0到9的10个整型数。此时bitmap的所有位都是0。 2. 把整型数4存入bitm 阅读全文
posted @ 2017-10-23 19:41 wade&luffy 阅读(1738) 评论(0) 推荐(1) 编辑
摘要:一种用于寻找有效路径的算法。 一个7×5大小的迷宫,绿色的格子是起点,红色格子是终点,中间三个蓝色格子是墙。这里对于A*寻路的描述做了很大的简化。实际场景中可能会遇到斜向移动、特殊地形等等因素,有些时候需要对OpenList中的方格进行重新标记。 游戏的规则是从起点开始,每一步只能上下左右移动一格, 阅读全文
posted @ 2017-10-23 18:58 wade&luffy 阅读(491) 评论(0) 推荐(0) 编辑
摘要:Base64是一种编码算法,因为这种算法只支持64个[可打印字符],所以叫做Base64。 为了保证所输出的编码位可读字符,Base64制定了一个编码表,以便进行统一转换。编码表的大小为2^6=64,这也是Base64名称的由来。 为什么只支持64个字符?ASCII码的范围是0-127,其中0-31 阅读全文
posted @ 2017-10-23 18:29 wade&luffy 阅读(594) 评论(0) 推荐(0) 编辑
摘要:信息摘要技术把明文内容按某种规则生成一段哈西值,即使明文消息只改动了一点点,生成的结果也会完全不同。 MD5(Message-digest algorithm 5)就是信息摘要的一种实现,它可以从任意长度的明文字符串生成128位的哈希值。 摘要哈希生成的正确姿势是什么样呢?分三步: 1.收集相关业务 阅读全文
posted @ 2017-10-23 18:14 wade&luffy 阅读(2965) 评论(0) 推荐(0) 编辑
摘要:一种生成信息摘要的算法。主要用于数据一致性和完整性的校验 SHA算法分很多版本,最大的分类是SHA-1和SHA-2。SHA-2包括很多子版本,SHA-224,SHA-256,SHA-384,SHA-512。 SHA-1(可破解 http://www.cnbeta.com/articles/tech/ 阅读全文
posted @ 2017-10-23 17:42 wade&luffy 阅读(364) 评论(0) 推荐(0) 编辑
摘要:假设有一个发送方在向接收方发送消息。如果没有任何加密算法,接收方发送的是一个明文消息:“我是小灰”。 如果消息被中间人截获到,即使中间人无法篡改消息,也可以窥探到消息的内容,从而暴露了通信双方的私密。 具体工作的步骤如下: 1.发送方利用密钥123456,加密明文“我是小灰”,加密结果为TNYRvx 阅读全文
posted @ 2017-10-23 17:30 wade&luffy 阅读(997) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示