![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构和算法
文章平均质量分 70
CherishPrecious
追求技术的道路永无止境。
展开
-
最大堆实现的优先队列
声明:class CPriorityQueueByMaxHeap{private: int* pArr; int nHeapSize;private: void MaxHeapify(int root);public: CPriorityQueueByMaxHeap(); CPriorityQueueByMaxHeap(int* arr, int len); ~CPrior...原创 2018-11-27 08:59:11 · 184 阅读 · 0 评论 -
环形队列的实现
一、队列的定义队列是一种特殊的线性表,线性表两端都可以进行插入删除,而队列只能在队头删除,队尾插入。插入元素称为入队,删除元素称为出队。特点:1、队列只允许在队头插入,队尾删除;2、先入队的元素在对头,后入队的元素在队尾;3、队列遵循“先进先出”的原则。图示: (1)普通队列(2)环形队列二、存储结构及实现 #include<stdio.h&g...原创 2018-11-27 09:00:48 · 540 阅读 · 0 评论 -
时间复杂度和空间复杂度
时间复杂度: 一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数f(n),进而分析f(n)随n的变化情况并确定T(n)的数量级。这里用"O"来表示数量级,给出算法的时间复杂度。 T(n)=O(f(n)); 它表示随着问题规模的n的增大,算法的执行时间的增长率和f(n)的增长率相同,这称作算法的渐进时间复杂度,简称时间复杂度。而我们一般讨...原创 2018-11-27 09:10:51 · 290 阅读 · 0 评论 -
操作系统PageIn、PageOut所用到的LRU策略(原理+实现)
一、什么是LRU缓存策略LRU(Least Recently Used)近期最少使用算法。它的原理就是,缓存一定量的数据,当缓存数量超过设置的阈值时就删除一部分旧的数据。那么我们怎样判定旧数据呢???根据局部性原理,距离当前最久没有被访问过的数据应该被淘汰。二、LRU缓存策略实现原理1、使用双向链表记录数据的被使用的时间因为我们要删除最久没有被访问的数据,为了保证效率,我们在缓存中维护...原创 2018-11-27 10:13:57 · 520 阅读 · 0 评论