如何获取此代码段的基本案例和整体运行时:
maxN -> gets the maximum value at the subtree = O(log n)
minN -> gets the minimum value at the subtree = O(log n)
bool check_bst(NODE *t) {
if(t==NULL) return true;
if(!check_bst(t->left) || !check_bst(t->right))
return false;
if(t->left != NULL && maxN(t->left) >= t->val)
return false;
if(t->right != NULL && minN(t->right) <= t->val)
return false;
return true;
}
是T(n) = 2T(n/2) + n
吗? O(nlogn)
?
答案 0 :(得分:0)
如果maxN和minN的运行时间是O(lgn),那么check_bst
的运行时间应为
T(n)= 2T(n / 2)+ O(lgn)
T(n)是O(n)。 您可以参考enter link description here