package cn.itcast_03;
/*
* 基本查找:数组无序(从头找到尾)
* 二分查找(折半查找):数组有序的
* 分析:
* A:定义最大索引,最小索引
* B:计算出中间索引
* C:拿中间索引的值和要查找的值进行比较
* 相等:就返回当前要查找的值进行比较
* 不相等:
* 大了:左边找
* 小了:右边找
* D:重新计算出新的中间索引
*
* 大:左边找
* max =min-1;
* 小:右边找
* min = mid+1;
* E:回到B
*/
public class 数组二分查找 {
public static void main(String[] args) {
//定义一个数组
int[] arr={11,22,33,44,55,66,77};
int x = getIndex(arr,22);
System.out.println(x);
}
public static int getIndex(int[] arr,int value) {
//定义最大索引和最小索引
int max =arr.length-1;
int min = 0;
//计算出中间索引
int mid = (min+max)/2;
//那中间索引进行比较
while(arr[mid] != value) {
if(arr[mid]>value) {
max = mid-1;
}else if(arr[mid]<value){
min = mid+1;
}
if(min>max) {
return -1;
}
mid = (min+max)/2;
}
return mid;
}
}
Java之数组二分查找
最新推荐文章于 2022-10-31 21:17:33 发布