下面 search 函数的平均时间复杂度为:
int search(int n, int* p, int target) {
int low=0, high=n;
while (low < high) {
int middle=(low+high)/2;
if (target==p[middle]) return middle;
else if (target>p[middle]) low=middle+1;
else high=middle;
}
return -1;
}
- A. O(n)
- B. O(1)
- C. O(log n)
- D. O(n log n)
正确答案:C