数据结构与算法(五):FIFO, LRU, LFU 缓存淘汰算法

服务器内存有限,不可能持续地往内存中存入数据,就需要对内存中的数据进行淘汰处理,通过制定淘汰策略(算法)以保证内存持续可用,使内存中的数据价值最大化。

应用层的缓存淘汰算法基本都是借用操作系统的内存管理算法,以称为内存页置换算法。

阅读更多

数据结构与算法(四):二叉堆 和 优先队列

本篇是上篇 数据结构与算法(三):树 和 二叉树 的延续。

二叉堆 是一种特殊的堆,本质上是一种完全二叉树。二叉堆有两个类型:最大堆最小堆

优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高级先出 (first in, largest out)的行为特征。通常采用堆数据结构来实现。

阅读更多

数据结构与算法(三):树 和 二叉树

有些数据的逻辑关系并不是简单的线性关系,常常存在一对多,甚至多对多的情况。例如,一个家族的 “家谱”,企业的职级关系等、书本的目录章节等都可以用树型数据结构来描述。

是典型的非线性数据结构。本篇描述对 二叉树 的理解。

阅读更多