Algorithm 二进制搜索比较数

Algorithm 二进制搜索比较数,algorithm,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 b

我为标准二进制搜索算法编写了这段递归代码。我只是想知道什么时候我应该向比较计数器添加+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
输入A:数据数组;
关键词:数据;五十、 R:整数;
变量m:整数;
返回m:整数;
开始
如果ra[m]那么
返回b搜索(A,键,m+1,R);
其他的
返回b搜索(A、键、L、m-1);
fi
终点

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

在不对称分析中,条件语句被认为是O(1)


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

在对称分析中,条件语句被认为是O(1)


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

我相信,当你说比较时,严格来说,你不是指你有多少个if,而是指二进制搜索的O(log(n))复杂性?如果是这样的话,为什么不在函数的开头计算调用的数量呢?

我相信,当你说比较时,严格来说,你不是指有多少个if,而是指二进制搜索的O(log(n))复杂度?如果是这样的话,为什么不在函数开始时计数,这样您就可以计算所做调用的数量了

对不起,我不明白。我问的是,如何计算这张照片中的对比数量algorithm@Tom你知道递归树吗?我想理解会有帮助的。对不起,我不理解。我问的是,如何计算这张照片中的对比数量algorithm@Tom你知道递归树吗?我认为,理解这一点会有帮助。