- 博客(3)
- 资源 (2)
- 收藏
- 关注
原创 数据结构 - lru&lfu实现(Java)
文章目录1. LRU 基于哈希表和双向链表的LRU算法实现2. LFU(LinkedHashSet)LRU与LFU的区别1. LRU 基于哈希表和双向链表的LRU算法实现缓存看这篇LinkedHashMap的LRUCache实现设计思路是,使用哈希表存储 key,值为链表中的节点,节点中存储值,双向链表来记录节点的顺序,头部为最近访问节点。LRU算法中有两种基本操作:get(key):查询key对应的节点,如果key存在,将节点移动至链表头部。set(key, value): 设置key对
2020-12-08 18:31:38 1200
原创 排序算法 - 归并&快排
文章目录1. 归并排序借助额外空间和并空间优化2. 快速排序递归写法非递归写法性能改进1. 归并排序平均时间复杂度:O(nlogn)最佳时间复杂度:O(n)最差时间复杂度:O(nlogn)空间复杂度:O(n)排序方式:In-place稳定性:稳定归并排序的思想就是将问题细分成小问题,最后将容易的小问题汇集就解决了全局的问题。一句话来说,局部有序 ·合并· 成全局有序。借助额外空间和并写归并排序建议先从合并写起,我们的基础条件就是将两个有序的数组合并成一个大数组,且这个大数组在合并过程
2020-12-03 22:16:04 550
原创 数据结构 - 两个栈实现一个队列
实现原理栈的特性是先进后出,队列的特性是先进先出。那么,我们使用两个栈,对同一个元素进行先进后出两次栈就形成了先进先出的顺序。即一个元素需要入栈两次,才能被取出来。我们将put,get定义为存放元素,与取元素。使用命名为in,out的栈,in代表往队列里面put元素第一次入栈是进入in,out代表get元素是从out这个栈里取。第一次,get时out为空,需要从in中取元素,以形成正序取。其内部实现细节如下:put(){ in.put;}get(){//如果out为空,则从in
2020-12-03 14:06:46 209
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人