
算法与数据结构
喜刷刷
想名字多费事
编程小白入驻
展开
-
LRU缓存机制
struct Doublelist{ int key,val; Doublelist* pre,*next; Doublelist(int key,int value):key(key),val(value),pre(nullptr),next(nullptr){} }; class LRUCache { public: LRUCache(int _capacity) { this->capacity=_capacity; head=..原创 2021-08-03 10:15:20 · 75 阅读 · 0 评论 -
优先级队列
优先级队列是一种常见的数据结构,在《STL源码剖析》中给出的定义是:priorty_queue是个带权值观念的queue,它允许加入新元素,移除旧元素,审视元素值等功能。 由于这是一个queue,所以只允许在底端加入元素,并从顶端取出元素。 但是优先级队列中的元素并非依照被推入队列的顺序排列。而是自动依照元素的权值排列。权值最高者排在最前面。 缺省的情况下维护的是一个大堆,即权值以从高到低排列。 因为优先级队列的内部是用堆来维护,所以很多时候我们要使用堆的情况下会选择用优先级队列来代替。 优先级队列的基本操原创 2021-05-12 16:59:27 · 458 阅读 · 0 评论 -
重温桶排序
原创 2021-04-10 10:05:41 · 82 阅读 · 0 评论 -
重温堆排序
原创 2021-04-10 09:32:57 · 85 阅读 · 0 评论 -
重温快速排序
此方法使用了自己的测试框架进行了测试,框架实现->基于Google测试框架实现自己的测试框架 #include <iostream> #include <cstdio> #include <cstdlib> #include <queue> #include <stack> #include <algorithm> #include <string> #include <map> #include <原创 2021-04-10 08:55:54 · 91 阅读 · 0 评论 -
重温插入排序
原创 2021-04-10 08:44:16 · 83 阅读 · 0 评论 -
重温冒泡排序
原创 2021-04-10 08:23:01 · 80 阅读 · 0 评论 -
时间复杂度
文章目录 什么是时间复杂度什么是大O如何描述时间复杂度你所不知道的O(logn)如果时间复杂度是一个复杂的表达式,我们如何简化举例说明时间复杂度要怎么算 什么是时间复杂度 时间复杂度就是用来方便开发者估算出程序的运行时间 我们该如何估计程序运行时间呢,我们通常会估计算法的操作单元数量,来代表程序消耗的时间, 这里我们默认CPU的每个单元运行消耗的时间都是相同的。 假设算法的问题规模为n,那么操作单元数量便用函数f(n)来表示 随着数据规模n的增大,算法执行时间的增长率和f(n)的增...转载 2021-04-05 17:10:20 · 521 阅读 · 0 评论