第21165题 单选
给定的C语言实现的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 log n)

B

O(n)

C

O(log n)

D

O(1)