数据结构与算法
八大排序经典算法
https://www.cnblogs.com/chengxiao/p/6104371.html
希尔排序增量序列简介
图解程序员必须掌握的Java常用8大排序算法
内排序有可以分为以下几类:
(1)、插入排序:直接插入排序、希尔排序、二分法插入排序。
(2)、选择排序:简单选择排序、堆排序。
(3)、交换排序:冒泡排序、快速排序。
(4)、归并排序
(5)、基数排序(桶排序)
交换排序快速排序:
快速排序里的挖坑填补法:以49为标准值,从右开始找比49小的值,首先是27,把27放在49的那个位置,把49放在27的位置,在从左找比49大的值65,把65放在49的新位置(原27的位置)之后变成 27,38,49,97,76,13,65.49
在新的一轮开始,从右开始找49 小的数是13,把13放在49的位置,49放在13的位置,在从左找比49大的数97,把97放在49的新位置上(原13的位置)变成27,38,13,49,76,97,65,49
树
二叉树 完全二叉树 满二叉树
二叉排序(查找)树
左树上所有结点均小于根结点的值,右树上所有结点均大于根结点的值,他的左右子树分别也为二叉排序(查找)树
平衡二叉树
是二叉排序(查找)树,左子树的深度减去右子树的深度 只可能是 -1 0 1
红黑树
1.节点都有颜色;2.在插入和删除的过程中,要遵循保持这些颜色的不同排列的规则。
红-黑树的主要规则如下:
1.每个节点不是红色就是黑色的;
2.根节点总是黑色的;
3.如果节点是红色的,则它的子节点必须是黑色的(反之不一定);
4.从根节点到叶节点或空子节点的每条路径,必须包含相同数目的黑色节点(即相同的黑色高度)。
【数据结构和算法05】 红-黑树(看完包懂~)
一篇文章搞懂红黑树的原理及实现
B-树(平衡的多路查找树) 每个结点的孩子可以多于两个,且每个结点可以存储多个元素
2-3树
每个结点有2个或3个子结点
2-3-4树
B+树不是树,是B树的变形