如何学好算法 ]二分查找是一个有效计算平方根的办法。()A对B错?
]二分查找是一个有效计算平方根的办法。()A对B错?
例如C<√A<B,取M1=(C b)/2,比较A和M1^2的大小,例如A>m1^2,然后把M1的值赋给C;反之,赋给b。通过上述方法,我们可以得到√A的近似值
二进制搜索算法是一种快速搜索算法。当我们在另一个数组中寻找一个数字时,我们通常直接遍历这个数组直到找到这个数字。时间复杂度为O(n)。如果有大量的数据,我们可以使用简单快速的搜索算法二进制搜索算法,也称为半搜索算法。
二分查找和折半查找一样吗?
让我再举一组例子。
我们使用二分法为一维数组中的十个元素15 23 38 47 55 62 88 95 102 123查找元素95。如果数组中的元素数为偶数,n=10,则(n1)/2=5.5。有两种向上舍入和向下舍入的方法。我用这个方法来解释。5.5向下舍入为5,因此数组的第五个元素55用作二叉树的根节点。此时,阵列被分为两堆。15233847和628895102123。使用相同的方法。15233847桩的中间元素为(41)/2=2.5,向下舍入为元素23,628895102 123为奇数,因此直接使用95作为中间元素。此时,左堆中的中间元素23和右堆中的中间元素95被用作原始数组中中间元素55的根节点的左子树和右子树。然后将这些元素分为四个桩:15(左桩23为中间元素)、38 47(右桩23为中间元素)、62 88(左桩95为中间元素)和102 123(右桩95为中间元素)。取四个桩的中间元素,15,38,62,102。其中,15和38是节点23的左右子树,62和102是节点95的左右子树。但是15只有一个元素,所以它只是一个叶节点。在3847取38之后,只剩下47,因此47被用作节点38的子树来发送叶节点。在62 88取62之后,剩下88作为62的叶节点。在102 123取102之后,只有123被用作他的叶节点。现在我们需要找到95号元素。我们第一次访问根节点55,然后第二次可以访问根节点的右子树节点95。所以我们只需要参观两次
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。