Java-数组(二分查找)
在一组数据中,使用快捷的二分查找,查出一个数据值的位置。
public class TwoSearch {
public static void main(String[] args) {
//定义要查找的数n
int n = 40;
//二分查找的数据必须是有序的
int []num = {10,20,30,40,50,60,70,80,90};
//定义最小下标和最大下标
int mix = 0, max = num.length-1;
//中间数据下标
int center = (mix+max)/2;
while(true){
//若数组中间值大于要查找的数,则比中间值小一个的数给最大值
//若数字中间值小于要查找的数,则比中间值大一个的数给最小值
if(num[center]>n){
max = center-1;
}else if(num[center]<n){
mix = center+1;
}else {
//中间值等于查找的数,跳出循环
break;
}
if(mix>max){
center=-1;
break;
}
//当边界值发生变化,需要更新中间下标
center = (mix+max)/2;
}
//输出查找数的在数组的下标
System.out.println(n+"的位置在数组下标的"+center);
}
}