算法
杨的传人
这个作者很懒,什么都没留下…
展开
-
如何用LinkedHashMap实现LRU缓存算法
缓存这个东西就是为了提高运行速度的,由于缓存是在寸土寸金的内存里面,不是在硬盘里面,所以容量是很有限的。LRU这个算法就是把最近一次使用时间离现在时间最远的数据删除掉。先说说List:每次访问一个元素后把这个元素放在 List一端,这样一来最远使用的元素自然就被放到List的另一端。缓存满了t的时候就把那最远使用的元素remove掉。但更实用的是HashMap。因为List太慢,要删掉的数据总是位转载 2015-04-11 20:01:45 · 2738 阅读 · 1 评论 -
流量限制--令牌桶和漏桶算法(流量整形算法)
流量整形流量整形(traffic shaping)典型作用是限制流出某一网络的某一连接的流量与突发,使这类报文以比较均匀的速度向外发送。流量整形通常使用缓冲区和令牌桶来完成,当报文的发送速度过快时,首先在缓冲区进行缓存,在令牌桶的控制下再均匀地发送这些被缓冲的文。流量整形的核心算法有以下两种,具体采用的技术为GTS(Generic Traffic Shaping),通用流量整形:转载 2015-05-26 21:03:18 · 1738 阅读 · 0 评论 -
学习geohash算法
基于地址进行数据的检索,这个貌似有点难度,如果是小的应用的话,可以根据经纬度信息来直接进行查询或者通过数据库本身的空间数据检索方案,但是如果数据量以及访问请求变大时,这中方案就显然不是很合适,往往会使请求变的很慢。 经过一系列的沟通下来,可以通过geohash的方案来解决这个问题。基本流程可以是这样: (1)原始详细地址数据--->经纬度数值--转载 2015-04-16 16:58:50 · 1113 阅读 · 0 评论 -
海量数据处理双层桶
转自:http://hi.baidu.com/xuehuo_0411/blog/item/7b85662be536a73bd52af160.html【什么是双层桶】 事实上,与其说双层桶划分是一种数据结构,不如说它是一种算法设计思想。面对一堆大量的数据我们无法处理的时候,我们可以将其分成一个个小的单元,然后根据一定的策略来处理这些小单元,从而达到目的。【适用范围】 第k大,转载 2015-04-11 17:20:42 · 503 阅读 · 0 评论 -
海量数据处理算法—Bit-Map
1. Bit Map算法简介 来自于《编程珠玑》。所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。2、 Bit Map的基本思想 我们先来看一个具体的例子,假设我们要对0-7内的5个元素(4,7,2,5,3)排序(这里假转载 2015-04-11 17:18:58 · 341 阅读 · 0 评论 -
简单的java缓存实现(LRU,LFU,FIFO)
原帖地址:http://my.oschina.net/u/866190/blog/188712提到缓存,不得不提就是缓存算法(淘汰算法),常见算法有LRU、LFU和FIFO等算法,每种算法各有各的优势和缺点及适应环境。1、LRU(Least Recently Used ,最近最少使用)算法根据数据的最近访问记录来淘汰数据,其原理是如果数据最近被访问过,将来被访问的几概率相对转载 2015-04-11 20:13:00 · 3703 阅读 · 1 评论 -
FIFO、LRU、LFU的含义和原理
题目:请简要介绍FIFO、LRU、LFU的含义和原理含义:FIFO:First In First Out,先进先出LRU:Least Recently Used,最近最少使用LFU:Least Frequently Used,最不经常使用以上三者都是缓存过期策略。原理和实现:一、FIFO按照转载 2015-04-11 20:06:53 · 24350 阅读 · 0 评论 -
海量数据处理算法—Bloom Filter
1. Bloom-Filter算法简介 Bloom-Filter,即布隆过滤器,1970年由Bloom中提出。它可以用于检索一个元素是否在一个集合中。 Bloom Filter(BF)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。它是一个判断元素是否存在集合的快速的概率算法。Bloom Filter有转载 2015-04-11 17:16:09 · 343 阅读 · 0 评论 -
淘汰算法LRU与LFU
LRU是最近最少使用页面置换算法(Least Recently Used) ,即最近最少使用页面置换算法,是为虚拟页式存储管理服务的,是根据页面调入内存后的使用情况进行决策了。由于无法预测各页面将来的使用情况,只能利用“最近的过去”作为“最近的将来”的近似,因此,LRU算法就是将最近最久未使用的页面予以淘汰。可以用一个特殊的栈来保存当前正在使用的各个页面的页面号。当一个新的进程访问某页面时原创 2015-04-11 19:39:42 · 2357 阅读 · 0 评论 -
详解一致性哈希(consistent hashing)算法
在做服务器负载均衡时候可供选择的负载均衡的算法有很多,包括: 轮循算法(Round Robin)、哈希算法(HASH)、最少连接算法(Least Connection)、响应速度算法(Response Time)、加权法(Weighted )等。其中哈希算法是最为常用的算法.典型的应用场景是: 有N台服务器提供缓存服务,需要对服务器进行负载均衡,将请求平均分发到每台服务器上,每台机器负责1转载 2015-04-11 18:48:18 · 359 阅读 · 0 评论 -
RSA加密的填充模式
跟DES,AES一样, RSA也是一个块加密算法( block cipher algorithm),总是在一个固定长度的块上进行操作。但跟AES等不同的是, block length是跟key length 以及所使用的填充模式 有关的。1)RSA_PKCS1_PADDING 填充模式,最常用的模式要求:输入 必须 比 RSA 钥模长(modulus) 短至少11个字节转载 2016-03-11 16:03:07 · 7311 阅读 · 0 评论