线性表:
单链表
双向链表
循环链表
栈
队列
递归
字符串
数组
树
二叉树
哈夫曼树:又称为最优树,是一种带权路径长度最短的树
平很二叉树
B树
B-树
B+树:Mysql默认采用的就是B+树进行存储的。
红黑树:像HashMap和TreeMap底层都用到了红黑树。
图:
邻接矩阵
邻接表
十字链表
邻接多重表
深度优先搜索
广度优先搜索
最小生成树
最短路径
拓扑排序
关键路径
散列表:
主要的一个应用就是hash函数,在很多的应用场景中都有遇到,比如:
负载均衡;
HashMap;
Redis中的hash数据结构;
很多中间件进行分片存储时也会用到hash算法,比如消息中间件、搜索引擎;
微服务中的熔断降级策略也会有一致性hash的策略。
查找:
顺序查找
折半查找
分块查找
排序:
插入排序:
直接插入排序
折半插入排序
希尔排序:
- 希尔排序实质上是采用了分组插入的方法,先将整个待排序记录序列分割成几组,从而减少参与直接插入排序的数据量,对每组直接进行插入排序然后增加每组的数据量,重新分组。这样当经过几次分组排序后,整个序列中的记录“基本有序”时,再对全体记录进行一次直接插入排序。
交换排序:
冒泡排序
快速排序
选择排序
简单选择排序
堆排序:在java中典型的就是用的是PriorityQueue
归并排序:利用了分支法的思想。先将数组拆分成一个个小块,保证这个小块内部有序,然后步长逐渐增加,保证数组整体有序。
基数排序:有点类似桶排序,利用数据的特点,取出数据的一小部分,比如前缀,先将整体划分到一个桶中,然后再对桶中的后面部分采用桶排序,保证整体有序。
算法:
递归
排列组合
分治法
动态规划
穷举法
备忘录
深度优先
广度优先
贪心算法
滑动窗口
双指针
基因算法
模拟
标签:总结,排序,hash,插入排序,链表,算法,查找,数据结构 From: https://www.cnblogs.com/zhf123/p/17180606.html