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;}
}