【发布时间】:2016-07-26 06:47:04
【问题描述】:
我有一个排序数组。
例如。 { 1, 2, 3, 4, 5 ,6, 7, 8 }
如果我搜索元素 8,则需要 4 次迭代才能得到结果为真或假。我所知道的是二进制搜索的运行时间上限为 O(logn),在这种情况下结果为 3。
如果我错了,有人可以帮助我摆脱这种困惑或纠正我的概念吗?
我的代码如下:
public static boolean BinarySearch(int[] arr, int num){
int mid, low, high;
int count = 0;
low = 0; high = arr.length -1;
while( low <= high ){
mid = low + (high-low)/2;
if(arr[mid] == num)
return true;
else if(arr[mid]<num)
low = mid +1;
else
high = mid -1;
}
return false;
}
【问题讨论】:
标签: arrays performance search binary asymptotic-complexity