美文网首页
二分法实现

二分法实现

作者: qpan | 来源:发表于2018-03-26 23:25 被阅读11次

package android.util
class ContainerHelpers 实现二分法的帮助类(循环实现法)

在 Arrays.binarySearch()也可找到示例

// This is Arrays.binarySearch(), but doesn't do any argument validation.
    static int binarySearch(int[] array, int size, int value) {
        int lo = 0;
        int hi = size - 1;
        while (lo <= hi) {
            final int mid = (lo + hi) >>> 1;
            final int midVal = array[mid];
            if (midVal < value) {
                lo = mid + 1;
            } else if (midVal > value) {
                hi = mid - 1;
            } else {
                return mid;  // value found
            }
        }
        return ~lo;  // value not present
    }
    static int binarySearch(long[] array, int size, long value) {
        int lo = 0;
        int hi = size - 1;
        while (lo <= hi) {
            final int mid = (lo + hi) >>> 1;
            final long midVal = array[mid];
            if (midVal < value) {
                lo = mid + 1;
            } else if (midVal > value) {
                hi = mid - 1;
            } else {
                return mid;  // value found
            }
        }
        return ~lo;  // value not present
    }

相关文章

  • js实现一个根号

    使用二分法实现

  • PHP中实现二分法查找的两种方法

    php实现二分法的查找其实很简单,跟我一起来看看怎么实现吧。 二分法查找需要数组是一个递增的数组。 想要写出二分法...

  • Java 面试系列:算法常用面试题汇总

    1.说一下什么是二分法?使用二分法时需要注意什么?如何用代码实现? 二分法查找(Binary Search)也称折...

  • 二分法实现

    package android.utilclass ContainerHelpers 实现二分法的帮助类(循环...

  • 常见算法的 Python 实现

    二分法查找 非递归版本: 递归方法实现: 冒泡排序 选择排序

  • 刷前端面经笔记(九)

    1.JavaScript实现二分法查找? 二分法查找,也称折半查找,是一种在有序数组中查找特定元素的搜索算法。查找...

  • golang循环递增数组查找值

    循环递增数组查找值 golang 1.实现要求 在循环递增数组中查找某个值 2.实现方法 使用二分法实现查找 使用...

  • 二分法查找

    二分法查找效率高,其查找次数与总元素数量存在对数关系 原理在进行二分法查找前需要先对数据进行排序(具体排序实现详见...

  • 实现倒计时模块方法

    1.实现思路 参数验证 二分法实现补充 奇数除以二都为偶数 2.实现深度拷贝 关键点为需要考虑到数组和null这两...

  • js的二分法

    二分法,即在一个有序的数组里查找一个已知其值的元素位置实现方法有两种: 循环二分法效率更高,递归容易造成堆栈溢出

网友评论

      本文标题:二分法实现

      本文链接:https://www.haomeiwen.com/subject/pkbdcftx.html