![](https://img-blog.csdnimg.cn/20210714214248828.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法
文章平均质量分 67
常用算法学习
烟火缠过客
差一个我们的距离
展开
-
LRU算法
1.LRU原理 方法一:哈希表 + 双向链表 算法 LRU 缓存机制可以通过哈希表辅以双向链表实现,我们用一个哈希表和一个双向链表维护所有在缓存中的键值对。 双向链表按照被使用的顺序存储了这些键值对,靠近头部的键值对是最近使用的,而靠近尾部的键值对是最久未使用的。 哈希表即为普通的哈希映射(HashMap),通过缓存数据的键映射到其在双向链表中的位置。 这样以来,我们首先使用哈希表进行定位,找出缓存项在双向链表中的位置,随后将其移动到双向链表的头部,即可在 O(1)O(1) 的时间内完成 g.原创 2021-09-26 21:46:52 · 302 阅读 · 0 评论 -
归并排序算法
定义 归并排序(Merge Sort)是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 解析 先将数组递归拆分成长度最大为2的小数组 拆分阶段完成 再对拆分后的子数组里面的数字进行排序,将小的移到左边,大的移到右边 这样所有的子数组都是有序的了 将这些有原创 2021-07-16 00:07:55 · 290 阅读 · 1 评论 -
快速排序算法
定义 快速排序(Quicksort)是对冒泡排序算法的一种改进。 排序流程 快速排序算法通过多次比较和交换来实现排序,其排序流程如下: 首先设定一个分界值,通过该分界值将数组分成左右两部分。 将大于或等于分界值的数据集中到数组右边,小于分界值的数据集中到数组的左边。此时,左边部分中各元素都小于或等于分界值,而右边部分中各元素都大于或等于分界值。 然后,左边和右边的数据可以独立排序。对于左侧的数组数据,又可以取一个分界值,将该部分数据分成左右两部分,同样在左边放置较小值,右边放原创 2021-07-14 21:47:07 · 134 阅读 · 0 评论