查询算法一般有哪些?
暴力:遍历 for
二分:条件为有序;
哈希:最高效;o(1)
索引:搜索引擎, lucene,solr
bfs&dfs:图论里面的遍历
平衡树:
B+树;
B-tree:
红黑树:
二叉搜索树:
--------------------------------------------------------------------------------------------------
二分法转化为数据结构就是二叉查找树
左节点<根节点<右节点
时间复杂度就是树的深度
二分:logn---->2^x=n(树的高度)-->x=log2^n---------->logn
AVL树:平衡二叉树(追求极致的平衡,理想状态)
红黑树:底层的数据结构就是(特殊的二叉树)二叉查找树
数据结构的推算:链表(暴力)->二叉树->二叉查找树->特殊的二叉查找树(自平衡的二叉查找树)
----------------------------------------------------------------------------------------------------------------
红黑树:
红黑树的性质:
1.每个节点红色或者黑色;
2.不可能有连载一起的红色节点(黑色可以)
3.根节点都是黑色root,没有父节点的节点为根节点
4.每个红色节点的子节点都是黑色,叶子节点都是黑色
红黑树的变换规则:
为了满足红黑树的性质,因此出现了旋转
1.改变颜色,红变黑,黑变红;
2.左旋;
3.右旋;
来源:oschina
链接:https://my.oschina.net/u/4434424/blog/3286523