0

鉴于二叉搜索算法的比较树的叶子都在相同或相邻的级别上,我们可以说在搜索 n 项列表中所做的键的比较log(n)在最坏情况下的上限是加 1,并且是log(n) + 1在一般情况下?

我从一本书上看到说它大约log(n) + 1是最坏和log(n)平均的,我认为当给定n时最坏的情况是固定的,所以不需要给出一个近似值,平均值应该加一。

代码如下:

Error_code recursive_binary_1(const Ordered_list &the_list, const Key &target, int bottom, int top, int &position)
{
 Record data;
 if(bottom < top) {
   int mid = (bottom + top)/2;
   the_list.retrieve(mid, data);
   if(data < target)
     return recursive_binary_1(the_list, target, mid + 1, top, position);
   else
     return recursive_binary_1(the_list, target, bottom, mid, position);
  }
  else if(top < bottom)
    return not_present;
  else {
    position = bottom;
    the_list.retrieve(bottom, data);
    if(data == target) return success;
    else return not_present;
  }
}

如果我不是,请纠正我。

4

0 回答 0