求一个数的平方根

思路:利用二分法,这样比暴力破解需要的时间复杂度低

private static int sqrt(int n) {
        int low = 0;
        int heigh = n;
        while (low <= heigh){
            int mid = low + (heigh - low) / 2;
            int product = mid * mid;
            if (product > n){
               heigh = mid - 1;
            }else {
                if(mid == n || (mid + 1) * (mid + 1) > n){
                    return mid;
                }
                low = mid + 1;
            }
        }
        return -1;
    }

 

posted @ 2020-08-02 22:22  冬马党  阅读(124)  评论(0编辑  收藏  举报