Java-数组(二分查找)
在一组数据中,使用快捷的二分查找,查出一个数据值的位置。
public class TwoSearch {public static void main(String[] args) {//定义要查找的数nint 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);}}
