
数据结构
文章平均质量分 56
Sun_hxx
这个作者很懒,什么都没留下…
展开
-
LRU缓存淘汰算法
LRU缓存淘汰算法 通过链表实现 因为缓存大小有限,当缓存空间不够,需要淘汰一个数据的时候,我们就直接将链表头部的结点删除。当要缓存某个数据的时候,先在链表中查找这个数据。如果没有找到,则直接将数据放到链表的尾部;如果找到了,我们就把它移动到链表的尾部。因为查找数据需要遍历链表,所以单纯用链表实现的 LRU 缓存淘汰算法的时间复杂很高,是 O(n)。 通过散列表实现 首先,我们来看如何查找一个数据。我们前面讲过,散列表中查找数据的时间复杂度接近 O(1),所以通过散列表,我们可以很快地在缓存中找到一个数据原创 2021-03-31 21:54:26 · 94 阅读 · 0 评论 -
数据结构之散列表
数据结构之散列表 什么是散列表 散列表又叫哈希表,利用的是数组支持按照下标随机访问数据的特性,所以散列表其实就是数组的一种扩展。 我们通过散列函数把元素的键值映射为下标,然后将数据存储在数组中对应下标的位置,当我们按照键值查询元素的时候,用同样的散列函数,将键值转换为数组下标,再从对应的数组下标的位置获取数据。 如何构造一个散列函数 那么,要如何构造一个散列函数呢?下面有三点构造散列函数的基本要求。 1、通过散列函数计算得到的散列值必须是一个非负整数。 2、如果key值相同,那么通过散列函数计算得到的值也一原创 2021-03-28 21:39:21 · 237 阅读 · 0 评论