基于有序数组的二分查找–java代码实现
有序数组的java代码实现,其中有序数组可能是两段子有序数组,如{7,9,2,4,5}:
代码块
public class FindArrayIndexWithTarget {
public static int find(int a[], int target)
{
if (null == a)
return -1;
int low, high;
low = 0;
high = a.length-1;
int mid = 0;
while(low < high)
{
mid = (low + high)/2;
if (a[mid] > target)
{
if (a[low] > target)
{
low = mid + 1;
}
else {
high = mid - 1;
}
}
else if (a[mid] < target) {
if (a[high] < target) {
high = mid - 1;
} else {
low = mid + 1;
}
} else {
return mid;
}
}
if (a[low] == target)
return low;
return -1;
}
}