LRU(Least recently used,最近最少使用)算法作为内存管理的一种有效算法,其含义是在内存有限的情况下,当内存容量不足时,为了保证程序的运行,这时就不得不淘汰内存中的一些对象,释放这些对象占用的空间,那么选择淘汰哪些对象呢?
LRU算法就提供了一种策略,告诉我们选择最近一段时间内,最久未使用的对象将其淘汰,至于为什么要选择最久未使用的,因为……继续阅读 »
wangting
6年前 (2018-08-01) 1615浏览
0个赞
一致性哈希算法背景
一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。
但现在一致性hash算法在分布式系统中也得到了广泛应用,研究过memc……继续阅读 »
wangting
6年前 (2017-11-14) 1305浏览
1个赞
快速排序算法
时间复杂度:O(n*lgn)
最坏:O(n^2)
空间复杂度:O(n*lgn)
不稳定。
快速排序是一种排序算法,对包含n个数的输入数组,平均时间为O(nlgn),最坏情况是O(n^2)。
通常是用于排序的最佳选择。因为,基于比较的排序,最快也只能达到O(nlgn)。
快速排序和冒泡排序相似,都是通过多次比较和交换来实现排序。
具体流程如下:
……继续阅读 »
wangting
6年前 (2017-11-14) 1723浏览
6个赞
算法要求:
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
6年前 (2017-11-14) 1222浏览
0个赞