检查BST函数的运行时和递归关系是什么?

时间:2017-11-22 04:16:51

标签: algorithm data-structures runtime binary-search-tree recurrence

如何获取此代码段的基本案例和整体运行时:

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)

1 个答案:

答案 0 :(得分:0)

如果maxN和minN的运行时间是O(lgn),那么check_bst的运行时间应为

  

T(n)= 2T(n / 2)+ O(lgn)

T(n)是O(n)。 您可以参考enter link description here