博客
图解!24张图彻底弄懂九大常见数据结构!
图解!24张图彻底弄懂九大常见数据结构!_数据结构图解_业余码农AmazingJ的博客-CSDN博客
排序算法
博客
数据结构常见的八大排序算法(详细整理):https://www.cnblogs.com/hokky/p/8529042.html
十大经典排序算法(动画演示):https://www.cnblogs.com/onepixel/articles/7674659.html
数据结构(三)用java实现其中排序算法:https://www.cnblogs.com/whgk/p/6596787.html
算法分类
- 插入排序:
- 直接插入排序:
- 希尔排序:
- 选择排序:
- 简单选择排序:
- 堆排序:
- 交换排序:
- 冒泡排序:
- 快速排序:
- 归并排序:
- 基数排序:
栈
【转】中缀表达式转换为后缀表达式:https://www.cnblogs.com/hantalk/p/8734511.html
B、B+树
3.B树与B+树:
https://www.cnblogs.com/vincently/p/4526560.html
红黑树
红黑树属于二叉搜索树(节点的值大于左子节点的值,小于右子节点的值),
满足以下条件:
根节点必须是黑色的;
任意从根到叶子节点的路径不能包含连续的红色节点;
任意从根到叶子节点的路径上的黑色节点数相同;
所有的叶子的子节点都是空节点,并且是黑色。
红黑树结构剖析:https://www.cnblogs.com/fanzhidongyzby/p/3187912.html
BitMap
面试官问:BitMap了解么?在什么场景下用过?碰到过什么问题?
面试官问:BitMap 了解么?在什么场景下用过?碰到过什么问题?
限流算法
博客
水满四溢【限流算法第四把法器:漏捅算法】- 第303篇
水满自溢「限流算法第四把法器:漏桶算法」- 第303篇 - 知乎
三种常见的限流算法(漏桶、令牌桶、滑动窗口):
三种常见的限流算法(漏桶、令牌桶、滑动窗口)_限流算法之漏桶算法、令牌桶算法_fedorafrog的博客-CSDN博客
令牌桶
介绍:
1.根据限流大小,设置按照一定的速率往桶里添加令牌
2.桶设置最大的放置令牌限制,当桶满时,新添加的令牌就被丢弃或者拒绝
3.请求到达后首先要获取令牌桶中的令牌,拿着令牌才可以进行其他的业务逻辑,处理完业务令牌直接删除即可。
4.令牌桶有最低限额,当桶中的令牌达到最低限额时,请求处理完之后将不会删除令牌,以此保证足够的限流。
应用:
Google的Guava包中的RateLimiter类就是令牌桶算法的解决方案。
漏桶
介绍:
漏桶算法其实可以粗略的认为是注水漏水过程。
1.桶中的水以一定的速率流出,
2.往桶中注水的速度是不确定的,当水桶中的水超出桶容量时则溢出丢弃,
3.因为桶容量是不变的,保证了整体的速率。
滑动窗
介绍:
1.滑动窗口算法主要包含三个属性,窗口大小,刷新间隔,以及窗口总容量。
2.滑动窗口以刷新间隔大小定时向前滑动,窗口大小内如果流量小于等于窗口总容量,可以正常处理,当窗口大小内流量大于窗口总容量,将丢弃处理
3.滑动窗口在每次向前滑动时,将丢弃末尾刷新间隔时长所处理的请求统计,加入窗口头部的流量统计。
应用场景:
TCP协议的数据包发送统计算法、
算法实现
1.动态规划:
滑动窗口;
多组数据动态维护所有选择条件。
2.回溯算法:
什么叫回溯算法,一看就会,一些就废: