单选题

下面 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 - 1;
		}
	}
	return -1;
}
A

O(n)

B

O(log(n))

C

O(1)

D

可能无法返回

赣ICP备20007335号-2