二分法查找有序数组

public static int search(int[] nums, int num) {
        int low = 0;//初始位置索引
        int high = nums.length - 1;//数组最大位置索引
        while (low <= high) {
            //每次算出low与high的中间位置索引
            int nid = (low + high) / 2;
            if (num > nums[nid]) {//如果该数大于中间值
                low = nid + 1;//low往high方向减少范围
            } else if (num < nums[nid]) {
                high = nid -1;//high往low方向减少范围
            } else {
                return nid;//找到索引
            }
        }
        return -1;
    }

“`

你可能感兴趣的:(算法初探)