非递归常规方法,设双指针。

 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @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;
}