一、leecode提交代码
int search(int* nums, int numsSize, int target)
{
int start,end,mid;
start = 0;
end = numsSize - 1;
do
{
mid = (end + start) / 2;
//printf("nums[%d] : %d\n",mid,nums[mid]);
if(nums[mid]==target)
{
return mid;
}
else if(nums[mid]>target)
{
end = mid - 1;
}
else if(nums[mid]<target)
{
start = mid + 1;
}
}while(start<=end);
return -1;
}
二、虚机模拟测试代码
#include<stdio.h>
void main()
{
int search(int* nums, int numsSize, int target);
int nums[] = {-1,0,3,5,9,12};
int target = 9;
int numsSize = sizeof(nums)/sizeof(int);
int flag;
int i;
for(i=0;i<numsSize;i++)
{
printf("%d ",nums[i]);
}
printf("\ntarget : %d\n",target);
printf("numsSize : %d\n",numsSize);
flag = search(nums,numsSize,target);
printf("flag : %d\n",flag);
}
int search(int* nums, int numsSize, int target)
{
int start,end,mid;
start = 0;
end = numsSize - 1;
do
{
mid = (end + start) / 2;
//printf("nums[%d] : %d\n",mid,nums[mid]);
if(nums[mid]==target)
{
return mid;
}
else if(nums[mid]>target)
{
end = mid - 1;
}
else if(nums[mid]<target)
{
start = mid + 1;
}
}while(start<=end);
return -1;
}
三、leecode提交截图