![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后端
马里奥奥利奥
这个作者很懒,什么都没留下…
展开
-
Redis缓存击穿,穿透,雪崩等问题
雪崩(随机过期时间、永不过期)、 穿透(表示恶意请求,在系统端判断是否符合规则,比如id<0,布隆过滤器)、 击穿(查询加for update,永不过期) redis缓存穿透:查询一个数据库中不存在的数据,比如商品详情,查询一个不存在的ID,每次都会访问DB,如果有人恶意破坏,很可能直接对DB造成过大地压力 解决方案:当通过某一个key去查询数据的时候,如果对应在数据库中的数据都不存...原创 2020-04-03 23:14:52 · 239 阅读 · 0 评论 -
二叉树的先序、中序、后序遍历的非递归方式
先序遍历: 引入栈。 拿到一棵树的根结点后,首先打印该结点的值,然后将其非空右孩子、非空左孩子依次压栈。栈非空循环:从栈顶弹出结点(一棵子树的根节点)并打印其值,再将其非空右孩子、非空左孩子依次压栈。 void pre2(node *root) { stack<node*> sb; sb.push(root); node* cur; while (!sb.empty()) { ...原创 2019-12-29 16:35:54 · 191 阅读 · 2 评论 -
计算机网络基础
物理层 物理层解决如何在连接各种计算机传输媒体上传输 数据比特流 。 根据信息在传输线上的传送方向,分为以下三种通信方式: 单工通信:单向传输,只能一方发送数据,一方接受数据(广播)。 半双工通信:双向交替传输,双方都可以接受数据,发送数据,但是不能同时进行(对讲机)。 双工通信:双向同时传输,双方可以同时接受数据和发送数据(打电话)。 带通调制(数模转换、模数转换):模拟信号是连续的信号(正...原创 2019-12-26 15:42:05 · 123 阅读 · 1 评论 -
排序
1. 冒泡排序 从左到右不断交换相邻逆序的元素,在一轮循环之后,最大的元素放在最右边。 一轮循环如果没有进行交换,说明已经有序,可以直接退出。 时间复杂度: 最好O(n);最坏O(n2 );平均O(n2 ) 空间复杂度:O(1) 稳定。 2. 选择排序 选择最小的元素与第一个元素互换位置。再从剩下的数组中选择最小的元素,与第二个元素交换。不断重复。 时间复杂度:O(n2 ) 空间复杂度:O(1) ...原创 2019-12-24 17:24:13 · 129 阅读 · 1 评论 -
STL
P2:STL体系结构介绍 (1)STL六大部件:容器,分配器,算法,迭代器,适配器,仿函数。 (2)前闭后开区间 [ ),例如 对象都有c.begin() 和 c.end()两个个函数。c.begin() 指向第一个元素地址,c.end()指向最后一个元素地址的下一个地址。 P3:Array(数组) (1)大小固定。 P4:vector(向量) (1)分配器会扩充, vector只能向后扩展,扩展...原创 2019-12-17 21:53:08 · 165 阅读 · 0 评论 -
cpp笔记
P1:c++编程简介 (1)Class分类: class without pointer members ——>e.g: complex 复数 class with pointer members ——>e.g: string 字符串 P2:头文件与类的声明 (1)标准库以头文件的形式存在,只需要include进去就好#include <*.h> (2)CPP防卫式头文件...原创 2019-12-11 17:50:16 · 199 阅读 · 0 评论