算法
文章平均质量分 87
圣小童
向着目标不断前进
展开
-
分布式常用限流算法
1. 限流场景在开发高并发系统时,有很多种方法可用来保护系统:缓存、降级、限流等。缓存:提升系统访问速度,增大系统处理能力降级:服务出现问题或影响核心流程的性能时,需要暂时屏蔽,待高峰过去或问题解决后再打开限流:部分场景比如:稀缺资源(秒杀,抢购)、写服务(评论、下单)、频繁复杂查询(评论最后几页)等,需要限制这些场景的并发/请求量限流就是通过对并发访问/请求进行限速或一个原创 2017-11-22 21:23:58 · 4328 阅读 · 0 评论 -
LRU算法四种实现方式介绍
LRU全称是Least Recently Used,即最近最久未使用的意思。LRU算法的设计原则是:如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小。也就是说,当限定的空间已存满数据时,应当把最久没有被访问到的数据淘汰。实现LRU 1.用一个数组来存储数据,给每一个数据项标记一个访问时间戳,每次插入新数据项的时候,先把数组中存原创 2017-12-19 20:58:58 · 205619 阅读 · 12 评论 -
FIFO和LFU算法介绍
FIFO:First In First Out,先进先出。判断被存储的时间,离目前最远的数据优先被淘汰。LRU:Least Recently Used,最近最少使用。判断最近被使用的时间,目前最远的数据优先被淘汰。LFU:Least Frequently Used,最不经常使用。在一段时间内,数据被使用次数最少的,优先被淘汰。FIFO原理:按照“先进先出(First I原创 2017-12-20 17:45:24 · 1351 阅读 · 0 评论 -
PriorityQueue原理解读
PriorityQueue优先队列本质上就是一个最小堆。所以先讲讲堆的性质:堆 堆(也叫优先队列),是一棵完全二叉树,它的特点是父节点的值大于(小于)两个子节点的值(分别为大顶堆和小顶堆)。需要注意的是堆中任一子树也是堆。下图中给出了从二叉树角度来看的大顶堆。 如果从数组角度来看,那么该大顶堆如下: 按照编号来原创 2017-12-20 18:11:11 · 682 阅读 · 0 评论 -
机器学习初探-常用优化算法介绍
目的:简单介绍机器学习中常用的一些优化算法,主要用于无约束最优化问题的求解。具体包括梯度下降法(最速梯度下降),牛顿法,几个拟牛顿法(包括DFP,BFGS,LBFGS等,共轭方向法,共轭梯度法,信赖域方法等不在本次做讨论)。概述一般的有监督的机器学习问题中,有了带有标注的数据之后,我们往往会先假设一个模型(比如在二分类问题中,我们可以假设有一个超平面把不同类别的ca原创 2018-01-10 11:31:31 · 2302 阅读 · 0 评论