非递归常规方法,设双指针。
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @param numsLen int nums数组长度
* @param target int整型
* @return int整型
*
* C语言声明定义全局变量请加上static,防止重复定义
*/
int search(int* nums, int numsLen, int target ) {
if(numsLen<=0)return -1;
int low=0,high=numsLen-1; //初始化双指针
int mid=(low+high)/2;
while(target!=nums[mid]&&low<=high){ //若当前mid值不为查找值,更新查找区域。
if(target>nums[mid]){
low=mid+1;
mid=(low+high)/2;
}
else{
high=mid-1;
mid=(low+high)/2;
}
}
if(low>high)return -1;
else return mid;
}