欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

(JAVA)二分法

程序员文章站 2024-03-16 08:39:04
...
package com.book.lite;

/**
 * @author zhangyu
 * @date 2021年08月12日 11:15 下午
 * 使用二分法,查找有序数组的某一个值
 */
public class binarySeach {
    public static void main(String[] args){
        int[] arr = {2,4,5,9,45,65,74,83,100};
        int index = arrNumber(arr,0);
        System.out.println(index);

    }
    /*
     *
     * @author zhangyu
     * @date 2021/8/12 11:35 下午
     * @param arr
     * @param index
     * @return int
     * 定义最小下标指针
     * 定义最大下标指针
     * 定义中间数的指针
     * 当查找值大于中间值时,最小下标指针移到中间位置
     * 当查找值小于中间值时,最大下标指针移到中间位置
     */
    public static int arrNumber(int[] arr,int index){
        int min = 0;
        int max = arr.length-1;
        int mid = 0;
        while (min < max){
            mid = (min+max)/2;
            if (index <arr[mid]){
                max = mid;
            }
            else if (index > arr[mid]){
                min = mid;
            }
            else{
                return mid;
            }
        }
        return -1;
    }
}

相关标签: java学习日记