搜索插入位置(二分法)
#include <stdio.h>
int searchInsert(int* nums, int numsSize, int target);
int main()
{
int nums[5] = {3, 4, 6, 7, 8};
int target;
while(1)
{
printf("请输入目标值:");
scanf("%d", &target);
int index = searchInsert(nums, 5, target);
printf("插入索引位置:%d\n", index);
}
}
int searchInsert(int* nums, int numsSize, int target)
{
if(nums == NULL || numsSize == 0)
return -1;
int left = 0;
int right = numsSize - 1;
while(left <= right)
{
int mid = (left + right) >> 1;
if(nums[mid] > target)
right = mid - 1;
else if(nums[mid] < target)
left = mid + 1;
else
return mid;
}
return left;
}