Time complexity 为什么B树的复杂度是O(logn),它不是一个二叉树

Time complexity 为什么B树的复杂度是O(logn),它不是一个二叉树,time-complexity,b-tree,Time Complexity,B Tree,根据,B树的搜索/插入/删除时间复杂度为Olog n。B树可以有>2个子树,即它不是二叉树。所以我不明白为什么它是logn-它不应该比logn快吗?例如,搜索应该是最坏情况下的Oh,其中h是树的高度。Big-O是最坏情况复杂性的度量;由于B-树节点不需要有超过2个子节点,最坏的情况是没有节点有超过2个子节点。B-树是二叉树的推广,其中每个节点可以有超过2个子节点。但这并不确定。例如,如果将每个节点的子节点数定义为x,则复杂性为。然而,当B-Tree中的最小子树数为2时,则树的最大高度为,如前一个

根据,B树的搜索/插入/删除时间复杂度为Olog n。B树可以有>2个子树,即它不是二叉树。所以我不明白为什么它是logn-它不应该比logn快吗?例如,搜索应该是最坏情况下的Oh,其中h是树的高度。

Big-O是最坏情况复杂性的度量;由于B-树节点不需要有超过2个子节点,最坏的情况是没有节点有超过2个子节点。

B-树是二叉树的推广,其中每个节点可以有超过2个子节点。但这并不确定。例如,如果将每个节点的子节点数定义为x,则复杂性为。然而,当B-Tree中的最小子树数为2时,则树的最大高度为,如前一个答案所述,Big-O考虑最坏情况,即具有最大高度对数基数2的树。因此,B-树的复杂性是。

是的,它不是二叉树。但是,如果我们在一个节点内执行二进制serach算法,则节点内的kyes时间复杂度可以被视为Ologn

让我们考虑,

B树的阶数每个节点的最大子节点数≤ M 节点中的节点总数:n

如果是这样的话,

这棵树的高度很高

O(logmn)   ----------(1)
所以在二叉树中搜索的总复杂度是

O(logmn) . O(lgm)   ----------(3)
根据对数运算,

{
logba = logca / logcb
} 将上述操作应用于3

O(logmn) . O(lgm) = O(lgn/lgm) . O(lgm)
                  = O(lgn) 

所以搜索操作的B树时间复杂度是Olgn

为什么一个有3个孩子的3不是logn?根据我从答案中了解到的,在你的例子中,它是另一个基数3的logn。正确,但logab只是logb/loga,因此这是一个常数。明白了!非常感谢。
O(logmn) . O(lgm) = O(lgn/lgm) . O(lgm)
                  = O(lgn)