// 计算BinarySerch的时间复杂度
int BinarySearch(int *a, int n, int x)
{
assert(a);
int begin = 0;
int end = n;
while (begin < end)
{
int mid = begin + ((end - begin) >> 1);
if (a[mid] < x)
begin = mid + 1;
else if (a[mid] > x)
end = mid;
else
return mid;
}
return -1;
}
时间复杂度为O(log2N)
不看代码,考虑思想。