我们如何计算以不均匀的方式分割的树的时间复杂度,比如1:3的比例,而不是典型的二叉树在两个相等的一半中分裂?
答案 0 :(得分:1)
这就是家庭作业的味道,但无论如何我都会试一试。
树本身并不具备时间复杂性,但我想我明白你的意思。
大多数具有良好平衡树的算法都具有log2(n)组件的复杂性。如果将其拆分为三分之一,则对数的基数为3/2。
因此,在常规二进制搜索树中的二进制搜索将在O(log2(n))中,在您的方案中,它将是O(log3 / 2(n))。
也就是说,对数的基数可以通过乘以常数来改变,并且我们在复杂性理论中不考虑常数。从技术上讲,虽然在这种情况下最坏的情况较慢,但同时也是复杂的。