• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

地铁5分钟理解LRU算法

地铁5分钟理解LRU算法
LRU(Least recently used,最近最少使用)算法作为内存管理的一种有效算法,其含义是在内存有限的情况下,当内存容量不足时,为了保证程序的运行,这时就不得不淘汰内存中的一些对象,释放这些对象占用的空间,那么选择淘汰哪些对象呢? LRU算法就提供了一种策略,告诉我们选择最近一段时间内,最久未使用的对象将其淘汰,至于为什么要选择最久未使用的,因为……继续阅读 »

wangting 1年前 (2018-08-01) 408浏览 0个赞

一致性哈希算法的原理

一致性哈希算法的原理
一致性哈希算法背景 一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。 但现在一致性hash算法在分布式系统中也得到了广泛应用,研究过memc……继续阅读 »

wangting 2年前 (2017-11-14) 260浏览 1个赞

快速排序算法

快速排序算法
快速排序算法 时间复杂度:O(n*lgn) 最坏:O(n^2) 空间复杂度:O(n*lgn) 不稳定。 快速排序是一种排序算法,对包含n个数的输入数组,平均时间为O(nlgn),最坏情况是O(n^2)。 通常是用于排序的最佳选择。因为,基于比较的排序,最快也只能达到O(nlgn)。 快速排序和冒泡排序相似,都是通过多次比较和交换来实现排序。 具体流程如下: ……继续阅读 »

wangting 2年前 (2017-11-14) 325浏览 0个赞

二分查找法 java实现(折半查找)

二分查找法 java实现(折半查找)
算法要求: 1.必须采用顺序存储结构。 2.必须按关键字大小有序排列。 算法复杂度: 二分查找的基本思想是将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止;如果x<a[n/2],则只要在数组a的左半部分继续搜索x,如果x>a[n/2],则只要在数组a的右半部搜索x. 时间复杂度无非就是whil……继续阅读 »

wangting 2年前 (2017-11-14) 416浏览 0个赞