Time complexity 为什么B树的复杂度是O(logn),它不是一个二叉树
根据,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时间复杂度可以被视为OlognTime 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树的阶数每个节点的最大子节点数≤ 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)