Python
胜兲半子
胜兲半子
展开
-
python堆排序, 堆构造及堆的删除及添加
1. 构成:完全二叉树, 且父节点大于/小于子节点 图1, 2是大顶堆 图3是小顶堆 图4不是堆2. 结构内联系: 2.1 堆一般用连续存储, 因为结构是完全二叉树, 不浪费节点, 元素之间存在联系 找父节点: (i-1) // 2 找左节点: i * 2 + 1 找右节点: i * 2 + 23. 堆的添加 #大顶堆示例 ...原创 2021-03-31 16:30:04 · 539 阅读 · 2 评论 -
20行Python代码帮你搞懂LRU算法
LRU算法在后端工程师面试中,是一个比较常出现的题目,这篇文章带大家一起,理解LRU算法,并最终用Python轻松实现一个基于LRU算法的缓存。LRU是什么LRU是一种缓存淘汰算法(在OS中也叫内存换页算法),由于缓存空间是有限的,所以要淘汰缓存中不常用的数据,留下常用的数据,达到缓存效率的最大化。LRU就是这样一种决定“淘汰谁留下谁”的算法,LRU是Least recently used的缩写,从字面意思“最近最少使用”,我们就可以理解LRU的淘汰规则。我们用一张图来描述LRU..原创 2021-03-29 11:27:21 · 348 阅读 · 0 评论