给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引,如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
假设数组中无重复元素
实例1:
输入:[1,3,5,6],5
输出:2
实例2:
输入:[1,3,5,6],7
输出;4
考察二分法查找
static int searchInsert(int* nums,int numSize, int target)
{
int i = 0;
int j = numSize - 1;
int mid = 0;
if (numSize == 0) return numSize;
while (i<=j)
{
mid = (i + j) >> 1;
if (nums[mid] == target)
{
return mid;
}
else if (nums[mid] > target)
{
j = mid - 1;
}
else
{
i = mid + 1;
}
}
return i;
}
int main()
{
int arr[] = {1,2,4,5,9};
int mid = searchInsert(arr, sizeof(arr) / sizeof(arr[0]),10);
printf("%d\n", mid);
system("pause");
return 0;
}