题目:
给定一个排序的数组和一个 target,若target在数组中找到,则返回下标,否则找出target要插入的index。
例如:
int[] array={1,3,5,6}; 5->2; 2 ->1; 7->4; 0->0.
值的注意的是,跳出while后的不同情况的判断。
public int serchInsert(int[] data,int target)
{
if(data == null||data.length == 0)
return 0;
int left=0;
int right=data.length-1;
while(left < right-1)
{
int mid=left+(right-left)/2;
if(data[mid] == target)
return mid;
else if(data[mid] < target)
left=mid;
else
right=mid;
}
if(data[left] >= target)//!
return left;
if(data[right] >= target)
return right;
else //data[right]<target
return data.length;
}