Java快速写一个二分法查找

简介: Java快速写一个二分法查找

Java快速写一个二分法查找

public class TestDemo {
    @org.junit.Test
    public void test2() {
        int[] a = new int[]{1, 2, 8, 1, 3};
        TestDemo testDemo = new TestDemo();
        int search = testDemo.binarySearch(a, 8);
        System.out.println(search);
    }
    public static int binarySearch(int[] array, int value) {
        int low = 0;
        int high = array.length - 1;
        while (low <= high) {
            int middle = (low + high) >> 1;
            if (value == array[middle]) {
                return middle;
            }
            if (value > array[middle]) {
                low = middle + 1;
            }
            if (value < array[middle]) {
                high = middle - 1;
            }
        }
        return -1;
    }
}

=================

快速查找是这样

    public static int search(int[] a, int key) {
        for (int i = 0, length = a.length; i < length; i++) {
            if (a[i] == key) {
                return i;
            }
        }
        return -1;
    }
相关文章
JAVA实现开根号的两种方式:二分法以及牛顿迭代法
JAVA实现开根号的两种方式:二分法以及牛顿迭代法
488 0
|
算法 Java
【java刷算法】牛客—剑指offer3栈、数组、递归、二分法的初步练习
✨今日三剑 JZ9 用两个栈实现队列 JZ10 斐波那契数列 JZ11 旋转数组的最小数字
【java刷算法】牛客—剑指offer3栈、数组、递归、二分法的初步练习
|
算法 Java
Java实现二分法查找数组中某一个元素
Java实现二分法查找数组中某一个元素
362 0
|
8月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
407 1
|
8月前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
382 1
|
9月前
|
数据采集 存储 弹性计算
高并发Java爬虫的瓶颈分析与动态线程优化方案
高并发Java爬虫的瓶颈分析与动态线程优化方案
Java 数据库 Spring
393 0
|
9月前
|
算法 Java
Java多线程编程:实现线程间数据共享机制
以上就是Java中几种主要处理多线程序列化资源以及协调各自独立运行但需相互配合以完成任务threads 的技术手段与策略。正确应用上述技术将大大增强你程序稳定性与效率同时也降低bug出现率因此深刻理解每项技术背后理论至关重要.
570 16