给定一个递增排序的数组,查找某个数字是否在数组中,如果在数组中,则返回该数字在数组中第一次出现的位置(从0开始);如果不在数组中,返回-1 。 
   不需要考虑给定的数组不是递增的情况。 
   务必使用二分查找的方式。 
                                         int binarySearch(int* arr, int arrLen, int a) {
        // write code here
        int left = 0;
        int right = arrLen-1;
        int mid = 0;
        while(left<=right)
        {
            mid = (left+right)/2;
            if(arr[mid]==a)
            {
                if(arr[mid-1]!=a)
                    return mid;
                else
                    return mid-1;
            }        
            else if(arr[mid]>a)
                right = mid - 1;
            else
                left = mid + 1;
        }  
        return -1;
    } import java.util.*;
public class Solution {
    /**
     * 
     * @param arr int整型一维数组 
     * @param a int整型 要查找的数字
     * @return int整型
     */
    public int binarySearch (int[] arr, int num) {
        // write code here
        if(arr.length<=0){
            return -1;
        }
        
        int left =0;    // 左脚标
        int right =arr.length-1;    // 右脚标
        
        // 一直到left== right 时跳出循环
        while(left<right){
            int mid = (left+right)>>1;
            if(arr[mid]<num){
                left=mid+1;
            }else{
                right=mid;
            }
        }
        return arr[left]==num ? left:-1;
    }
} import java.util.*;
public class Solution {
    /**
     * 
     * @param arr int整型一维数组 
     * @param a int整型 要查找的数字
     * @return int整型
     */
    public int binarySearch (int[] arr, int a) {
        // write code here
        int l = 0, r = arr.length - 1;
        while(l < r){
            int mid = (l + r) >> 1;
            if(arr[mid] >= a) r = mid;
            else l = mid + 1;
        }
        return arr[l] == a ? l : -1;
    }
}