使用二分查找:确保待查找的数组或者集合的数据是有序排列(升序或者降序)
话不多说,上代码:
public class TwoFind { public static void main(String args[]){ int searchData=89; //int dbArray[]={12,56,67,89,45,23,67,89,10}; int dbArray[]={12,23,45,55,67,89,100}; show(searchData,dbArray); } public static void show(int searchData,int dbArray[]){ int start=0; int end=dbArray.length-1; int mid=0; while(start<=end){ int temp=(start+end)%2; mid=(temp==0?(start+end)/2:(start+end)/2+1); //mid=(start+end)/2; if(searchData>dbArray[mid]){ start=mid+1; } else if(searchData==dbArray[mid]){ System.out.println("找到目标数据位置为:"+mid+" 数据为:"+dbArray[mid]); break; } else{ end=mid-1; } System.out.println("!!!"); } } }
结果为:
!!!
找到目标数据位置为:5 数据为:89
Process finished with exit code 0