二分查找有序數組

/**
     * 找到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;
    }
相關文章
相關標籤/搜索