数据结构与算法
大海_sea
这个作者很懒,什么都没留下…
展开
-
树(四)详解B+树与B树索引
1 B树1.1 B树是什么 首先,B树不属于二叉树,它的节点可以拥有大于2的子节点。 B树是一种平衡的多叉树,又叫做多路平衡搜索树,一棵m叉的B树具有如下特性。 (1)树中的每一个节点最多包含m个子节点; (2)除根节点与子节点外,每个节点至少包含ceil(m/2)个子节点,这里ceil表示向上取整(比如一个7叉B树,每个节点至少...原创 2020-03-05 17:25:02 · 2467 阅读 · 4 评论 -
树(三)红黑树与平衡二叉树的区别
树(一):二叉查找树树(二)平衡二叉树1 什么样的数据结构称为红黑树 红黑树(Red Black Tree)是一种自平衡的二叉查找树,它与平衡二叉树相同的地方在于都是为了维护查找树的平衡而构建的数据结构,它的主要特征是在二叉查找树的每个节点上添加了一个属性表示颜色,颜色有两种,红与黑。1.1 性质每个节点是红色或者黑色; 根节点是黑色; 所有叶子节点都是黑色(...原创 2020-02-12 13:19:41 · 8569 阅读 · 0 评论 -
树(二)平衡二叉树
树(一):二叉查找树1为什么有平衡二叉树 二叉查找树(二叉搜索树)的构造是为了加快查询的效率,其查找的思想类似于折半查找法。而搜索树节点不同的插入次序会导致不同的查找效率。也就是拥有相同的数据内容,由于树的插入次序的不同导致了不同的树的深度与平均查找长度。 比如有8个数据分别是1,2,3,4,5,6,7,8,如果按照由小到的的顺序依次插入,构造的树是...原创 2020-02-07 17:15:26 · 849 阅读 · 1 评论 -
树(一):二叉查找树
树(二)平衡二叉树一、二叉查找树的定义 二叉查找树(BST,Binary Search Tree),也称为二叉排序树或者二叉搜索树,是二叉树的一种。二叉查找树与二叉树一样,可以为空;另外,如果不为空,作为二叉查找树需满足以下性质: 1. 非空左子树的所有键值小于其根节点的键值; 2. 非空右子树的所有键值大于其根节点的键值; ...原创 2019-12-13 16:12:19 · 587 阅读 · 1 评论 -
Java实现折半查找(二分查找)
一、折半查找是什么? 折半查找是一种在有序数组中查找某一特定元素的搜索算法。它的设计思想是这样的:设查找的范围是数组的第一个元素(下标为minIndex)到数组的最后一个元素(下标为maxIndex),首先看处于这个范围正中间的元素(下标为midIndex)是否就是要搜索的元素,如果是,直接返回这一个下标;如果不是,分为两种情况,一种是比中间的这一个元素要小,此时查找的范围修改第...原创 2019-12-13 13:15:06 · 1241 阅读 · 1 评论