二分查找有序数组

/**
     * 找到key在有序数组的位置,找到即返回
     * @param a 有序数组
     * @param key
     * @return
     */
    public static int findPos(int[] a, int len, int key) {
        int left = 0;
        int right = len - 1;
        int mid;
        while (left <= right) {
            mid = (left + right) / 2;
            if (key < a[mid]) {
                right = mid - 1;
            } else if (a[mid] < key) {
                left = mid + 1;
            } else {
                return mid;
             }
         }
        return -1;
    }
相关文章
相关标签/搜索