使用二分查找算法,尽可能的逼近求解平方根。算法的思路很简单:设置三个标识:left=0,right=x(x为输进去的被开方数)

mid=(left+right)/2,然后用mid*mid-x的绝对值去和一个很小的小数作比较,当绝对值小于它时我们就当它们相等了,否则

否则按照二分法移动三个标识,大于就把right移动到mid处,mid移动到新的left与right中间,小于就把left移动到mid处,

mid移动到新的left与right中间。具体实现代码如下,我使用了较大的double类型,以求实现比手机计算器更精确的求解,

使其具有实用价值。

import java.util.*;
public class Solution {public static void main(String[] args) {System.out.println("请输入一个数:");Scanner sc = new Scanner(System.in);float a =sc.nextFloat();double b=mySqrt(a);System.out.print("它的平方根是:"+b);}public static double mySqrt(float x){if(x==0|x==1) return x;double left = 1, right = x,res = 0;while(left<=right){double mid = (left+right)/2;if(Math.abs(mid*mid - x)<=0.00000000001){return mid;} else if (Math.abs(mid*mid - x)>0.00000000001 && (mid*mid - x)>0){right = mid;}else if(Math.abs(mid*mid - x)>0.00000000001 && (mid*mid - x)<0){left = mid ;}}return res;}
}

二分查找算法应用-实现求平方根函数相关推荐

  1. 【leetcode】第69题 x 的平方根 牛顿迭代法实现求平方根函数 C++

    这题属于简单题,但是因为学到了新的算法:牛顿迭代法(或牛顿法),这里做一下记录. 题目描述: 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类 ...

  2. 二分查找算法的一点改进

    在计算机科学中,二分查找,是一种在有序数组中查找某一特定元素的搜索算法.这种搜索算法每一次比较都使搜索范围减半.第一篇二分查找的论文发表于1946年,然而第一个没有bug的二分查找算法却是在1962年 ...

  3. 递归来实现一个二分查找算法函数bi_search()

    题目内容: 定义一个 prime() 函数求整数 n 以内(不包括n)的所有素数(1不是素数),并返回一个按照升序排列的素数列表.使用递归来实现一个二分查找算法函数bi_search(),该函数实现检 ...

  4. 二分查找算法详细汇总

    二分查找算法详细汇总 文章目录 二分查找算法详细汇总 二分查找算法介绍模板 算法思想 举例说明 模板实现 (1)递归方式实现 (2)非递归方式实现 二分查找问题相关难点问题1[前缀和 + 二分查找 + ...

  5. 二分查找算法的万能公式(LeetCode35、704、1095)

    二分查找常常用于有序数组的查找操作.当然如果是一个问题,数组的顺序满足特定条件(不仅仅是升序或者降序,也可以是先升后降或先降后升),就可以通过逐步排查,缩小问题的规模的方式找到,这种算法也是二分查找算 ...

  6. leetcode中关于使用二分查找算法思想deal的题型

    学习了二分查找的算法思想之后,再leetcode上写了一道常见的简单面试题,现在用博客记录一下我学习刷题的笔记! leetcode 题号69:Sqrt(x)(经典的面试题) 给你一个非负整数 x ,计 ...

  7. 二分查找算法(折半查找算法)

    二分查找算法(折半查找算法) 二分查找又称折半查找.二分搜索.折半搜索等,是在分治算法基础上设计出来的查找算法,对应的时间复杂度为O(logn). 二分查找算法仅适用于有序序列,它只能用在升序序列或者 ...

  8. Python实现二分查找算法,图片结合代码讲解,简单易懂

    Python实现二分查找算法,图片结合代码讲解,简单易懂 二分查找是指在一个数组中循环找到特定的目标元素的一种算法,二分查找算法要求这个数组必须是有序的,如果不是有序则最后得出的结果是不准确的,因为其 ...

  9. 二分查找算法的两种实现方式:非递归实现和递归实现

    二分查找的条件是对一组有序数组的查找,这一点很容易忘记,在使用二分查找的时候先要对数组进行排序. 先说一下二分查找的思路:一个有序数组,想要查找一个数字key的下标,首先算出中间下标mid,利用mid ...

最新文章

  1. java 自适应响应式 网站 源码 SSM 生成 静态化 手机 平板 PC
  2. JavaScript学习-1
  3. FineReport:任意时刻只允许在一个客户端登陆账号的插件
  4. C语言汇编pdf,c语言程序代码[汇编].pdf
  5. 竞价这种方式适合不适合GPU云服务器,怎么买更划算??
  6. matlab ds18b20 单片机,基于51单片机ds18b20温度检测————设计报告.doc
  7. 如何使用VS2012进行简单程序的DEBUG(入门级)
  8. 基台和种植体如何连接_种植牙所用的材料是什么?安不安全?种植牙手术后该如何护理?...
  9. 【2019杭电多校第六场1011=HDU6644】11 Dimensions(dp+思维)
  10. Bias and Variance with Mismatched Distributions
  11. 谭浩强C语言第一章代码练习题
  12. 视易精通收银服务器自动关机,视易精通量贩式收银系统操作手册3.0
  13. 做APP,从头到尾产品经理需要做什么?- 项目启动前
  14. AtCoder Beginner Contest 172 E - NEQ(二项式反演)
  15. 「解析」正则化 DropPath
  16. 数据中心服务器硬盘,PCI-E固态硬盘在数据中心的机会_希捷硬盘_服务器评测与技术-中关村在线...
  17. 谷歌突然宣布:上帝的密码防线逐渐崩溃!人工智能有可能是人类文明史的终结!...
  18. 【瑞模网】游戏美术基础(一):游戏贴图
  19. 网页JS简繁体字转换
  20. HHD+SSD重装mac os 10.9记录

热门文章

  1. 算法模版:模拟数据结构之绪论【沈七】
  2. 陈艾盐:春燕百集访谈节目第二十五集
  3. 洛谷刷题记录(python)【入门3】循环结构
  4. 第一章:客户端网页编程简介
  5. 美团2019编程汇总
  6. 长沙哪个服务器网速最快,5G网络湖南长沙首秀?网速是4G的60倍,快的让人无法想象...
  7. 自用房屋租住管理系统
  8. 把图片变成语音怎么弄?快来看看这篇文章
  9. 一些好用的Linux命令工具
  10. 35 - 用正则表达式分别提取电话号的区号、电话号和分机号