下面的二分查找用于找到第一个符合条件的数字,如果该数字存在则返回该数字的下标;如果不存在则返回该数字应该插入的位置。(用于经常使用而且容易忘记,mark一下)
注意一下left和right的赋值操作。
int searchInsert(int A[], int n, int target) {
int left = -1, right = n, mid = 0;
while (left + 1 != right){
mid = left + (right - left) / 2;
if (A[mid] < target)
left = mid;
else
right = mid;
}
return right;
}