【发布时间】:2020-11-15 06:56:22
【问题描述】:
/*
* 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);
}
这段代码sn-p的时间复杂度是多少?我觉得它的 O(logN) 但正确答案是 O(N)。有人能解释清楚为什么吗?
【问题讨论】:
标签: c++ algorithm search time-complexity binary-search