#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#if 0
/* 顺序遍历 */
int searchInsert(int* nums, int numsSize, int target)
{
int index = 0;
int i = 0;
if (nums == NULL || numsSize <= 0) {
return 0;
}
for (i = 0; i < numsSize; i++) {
if (nums[i] >= target) {
return i;
}
}
return numsSize;
}
#else
/* 二分查找法 */
int searchInsert(int* nums, int numsSize, int target)
{
int left = 0;
int right = 0;
int mid = 0;
if (nums == NULL || numsSize <= 0) {
return 0;
}
if (nums[numsSize - 1] < target) {
return numsSize;
}
left = 0;
right = numsSize - 1;
while (left <= right) {
mid = (left + right) / 2;
if (nums[mid] == target) {
return mid;
} else if (nums[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return left;
}
#endif
int main()
{
int retValue = 0;
int array[] = {1};
retValue = searchInsert(array, sizeof(array)/sizeof(array[0]), 1);
printf("retvalue:%d\n", retValue);
return 0;
}