数据结构和算法
文章平均质量分 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 · 269 阅读 · 0 评论 -
环形队列的实现
一、队列的定义 队列是一种特殊的线性表,线性表两端都可以进行插入删除,而队列只能在队头删除,队尾插入。插入元素称为入队,删除元素称为出队。 特点: 1、队列只允许在队头插入,队尾删除; 2、先入队的元素在对头,后入队的元素在队尾; 3、队列遵循“先进先出”的原则。 图示: (1)普通队列 (2)环形队列 二、存储结构及实现 #include<stdio.h&g...原创 2018-11-27 09:00:48 · 650 阅读 · 0 评论 -
时间复杂度和空间复杂度
时间复杂度: 一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数f(n),进而分析f(n)随n的变化情况并确定T(n)的数量级。这里用"O"来表示数量级,给出算法的时间复杂度。 T(n)=O(f(n)); 它表示随着问题规模的n的增大,算法的执行时间的增长率和f(n)的增长率相同,这称作算法的渐进时间复杂度,简称时间复杂度。而我们一般讨...原创 2018-11-27 09:10:51 · 396 阅读 · 0 评论 -
操作系统PageIn、PageOut所用到的LRU策略(原理+实现)
一、什么是LRU缓存策略 LRU(Least Recently Used)近期最少使用算法。它的原理就是,缓存一定量的数据,当缓存数量超过设置的阈值时就删除一部分旧的数据。 那么我们怎样判定旧数据呢???根据局部性原理,距离当前最久没有被访问过的数据应该被淘汰。 二、LRU缓存策略实现原理 1、使用双向链表记录数据的被使用的时间 因为我们要删除最久没有被访问的数据,为了保证效率,我们在缓存中维护...原创 2018-11-27 10:13:57 · 788 阅读 · 0 评论
分享