- 在一个有序数组中寻找目标元素(target),如果找到,返回下标。如果没找到,则返回该元素按顺序插入后的下标
public class LC35_binarySearch {
public static void main(String[] args) {
int[] array = {5, 9, 15, 36, 84, 96, 125, 456, 535};
System.out.println(binary_SearchPlus(array,85));
}
private static int binary_SearchPlus(int[] array, int target) {
int left = 0;
int right = array.length - 1;
if (target > array[right]) {
return array.length;
}
for (int i = 0; i < array.length; i++) {
if (array[i]<target && target<array[i+1]) {
return i+1;
}
}
while (left <= right) {
int mid = (left + right) / 2;
if (array[mid] == target) {
return mid;
} else if (array[mid] > target) {
right = mid - 1;
} else {
left = mid + 1;
}
}
return 0;
}
}