Algorithm 什么';以下算法的递推关系是什么?

Algorithm 什么';以下算法的递推关系是什么?,algorithm,complexity-theory,recurrence,big-theta,Algorithm,Complexity Theory,Recurrence,Big Theta,是T(n)=T(n-1)+2+T(n+1)以下的递推关系吗? 我只是计算中间变量赋值和最后一行,因为所有的if语句都不包括其他语句。。。这种方法正确吗 /* * V is sorted * V.size() = N * The function is initially called as searchNumOccurrence(V, k, 0, N-1) */ int searchNumOccurrence(vector<int> &V, int k, int

是T(n)=T(n-1)+2+T(n+1)以下的递推关系吗?
我只是计算中间变量赋值和最后一行,因为所有的if语句都不包括其他语句。。。这种方法正确吗

/* 
 * V is sorted 
 * V.size() = N
 * The function is initially called as searchNumOccurrence(V, k, 0, N-1)
 */
int searchNumOccurrence(vector<int> &V, int k, int start, int end) {
    if (start > end) return 0;
    int mid = (start + end) / 2;
    if (V[mid] < k) return searchNumOccurrence(V, k, mid + 1, end);
    if (V[mid] > k) return searchNumOccurrence(V, k, start, mid - 1);
    return searchNumOccurrence(V, k, start, mid - 1) + 1 + searchNumOccurrence(V, k, mid + 1, end);
}
/*
*V已排序
*V.大小()=N
*该函数最初称为searchNumOccurrence(V,k,0,N-1)
*/
整数搜索numoccurrence(向量&V、整数k、整数开始、整数结束){
如果(开始>结束)返回0;
int mid=(开始+结束)/2;
if(V[mid]k)返回searchNumOccurrence(V,k,start,mid-1);
返回searchNumOccurrence(V,k,start,mid-1)+1+searchNumOccurrence(V,k,mid+1,end);
}

如@GAURANG VYAS在评论中所述。递推关系为T(n)=2*T(n/2)+O(1),在θ(n)中。在O(logn)中,其递推关系T(n)=T(n/2)+O(1)


由于您的方法
searchNumOccurrence()
查找给定k的所有匹配项,因此它可能会查找V中的所有元素。典型示例是,如果V中的所有元素都等于k。

这是二进制搜索吗?看起来像这样。虽然要计算具有特定值的元素数量,但我认为只要找到一个匹配元素,就可以扫描周围的元素。复杂性不是您所提到的。它是T(n)=2*T(n/2)+c。