使用二分查找:确保待查找的数组或者集合的数据是有序排列(升序或者降序)
话不多说,上代码:
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
二分查找算法详解
4241

被折叠的 条评论
为什么被折叠?



