二进制搜索比较次数

时间:2012-12-10 04:02:35

标签: algorithm

我为标准二进制搜索算法编写了这段递归代码。我只是想知道我什么时候在比较计数器上添加+1?下面的伪代码

Inputs A: Array of Data;
key:Data; L,R:Integer;
Variables m:Integer;
Returns m:Integer;

Begin
If R<L then return -1; fi
m:= (R+L)/2
if key = A[m] then return m; fi
if key > A[m] then
return binSearch(A,key,m+1,R);
Else
return binSearch(A,key,L,m-1);
fi
End

检查第一个if语句中的L和R是否算作比较?有点困惑。

2 个答案:

答案 0 :(得分:3)

我相信当你说比较你并不严格意味着你有多少ifs,而是你试图获得二元搜索的O(log(n))复杂度?如果是这种情况,为什么不计算函数的开头,以便计算调用的数量

答案 1 :(得分:0)

在渐近分析中,条件语句被认为是O(1)。

因为条件问题是决策问题。 0或1。