MR-LI_20200831-李伟江

问题

二分查找

非递归进行二分查找

public int binarysearch( int[] array , int target) {
        int low = 0;
        int high = array.length - 1;
        while( low <= high ) {
            int mid = low + ( high - low ) / 2 ;
            if( array[ mid ] > target ) {
                high = mid - 1;     //左边搜索区间不包含mid
            }else if( array[ mid ] < target ) {
                low = mid + 1 ;     //右边的搜索区间不包含mid
            }else {
                return mid;
            }
        }
        return -1;
    }

递归进行二分查找

public int binarysearch( int[] array , int target) {
    int low = 0 ;
    int high = array.lenth - 1 ;
        if( low > high ) {
            return -1;
        }
        int mid = low + ( high - low ) / 2;
        if( array[ mid ] > target ) {
            return binarysearch( array , low , high - 1 , target);
        }
        if( array[ mid ] < target ) {
            return binarysearch( array , low + 1 , high , target);
        }
        return mid; 
    }

吐槽

生活从来都没有假期

标签


© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1