![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 52
查洛巴
勿以往之不谏,知来者之可追
展开
-
缓存淘汰算法--LRU算法
1. LRU 1.1. 原理 LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。 1.2. 实现 最常见的实现是使用一个链表保存缓存数据,详细算法实现如下: 1. 新数据插入到链表头部; 2. 每当缓存命中(即缓存数据被访问),则将数据移到链表头部; 3转载 2016-08-17 17:41:20 · 317 阅读 · 0 评论 -
打乱一个数组
给定一个数组,要求把数组内元素的顺序随机打乱,然后输出,主要是要保证效率。 这其实是个洗牌算法,首先从所有元素中随机选取一个与第一个元素进行交换,然后在第二个之后选择一个元素与第二个交换,直到最后一个元素。这样能确保每个元素在每个位置的概率都是1/n原创 2016-09-02 18:24:44 · 288 阅读 · 0 评论 -
基本排序算法
概述: 本文主要讨论的是在内存中完成的排序工作 即我们所说的内排序。 基于比较的排序的最坏时间不小于nlogn,可用决策树证明。 1.简单选择排序 基本思想: 找到数组中最小的元素,其次将它和数组的第一个元素交换,在剩下的元素找到最小的元素,将它与数组的第二个元素交换位置,如此往复,直到整个数组排序。 命题: 对于长度为N的数组,选择排序大约需要N^2/2次比较和N次交换。 特原创 2016-07-21 21:06:05 · 713 阅读 · 0 评论