爽了今天又刷了几题开根
挺简单的是吧
那今天就给你们展示一下怎么用二分的方法把sqrt函数写出来:
二分查找是一种在已排序的数组中查找特定元素的算法。对于求平方根的问题,可以将其转化为求某个数的平方等于给定值的问题。假设要求一个数x的平方根,可以通过不断地猜测和调整答案来逼近正确答案。
算法的思路如下:
-
定义搜索的边界,设左边界为0,右边界为x。
-
当左边界小于等于右边界时,进行二分搜索。
-
计算中间值mid,将mid的平方与x进行比较。
-
如果mid的平方等于x,那么mid就是所求的平方根,直接返回mid。
-
如果mid的平方大于x,说明mid过大,将右边界更新为mid-1。
-
如果mid的平方小于x,说明mid过小,将左边界更新为mid+1。
-
不断地进行二分搜索,直到找到满足条件的平方根。
爽了,下面是代码:
//二分手写sqrt函数
double my_sqrt(double value) {
double eps = 1e-9;
double left = 0, right = value;
double mid = 0;
double last = 0;//Keep the last rumber
if(value == 1) { //Special judgment
return 1;
}
if(value <
本文介绍了如何使用二分查找算法手写sqrt函数。通过不断猜测和调整,将求平方根问题转化为在0到x之间寻找使平方等于给定值的数。算法流程包括设置左右边界,比较中间值的平方与目标值,根据比较结果调整边界,直至找到平方根。文章最后给出了相关代码实现。
订阅专栏 解锁全文

1万+

被折叠的 条评论
为什么被折叠?



