Java实现快速查找(又名二分查找)
Java中的快速查找
条件:快速查找只能在有序数组中使用
快速查找的原理:
通过输入的数和中间的数进行对比大小确定要查找的数的范围,最后将范围缩小到1和要查找的数进行对比找到了输出下标,找不到输出“找不到”。。
代码实现
public class RecursionSeek {
public static void main(String[] args) {
int []arr ={
1,2,3,4,5,6,7,8,9,10};
int X = -1;
search(arr,X);
search1(arr,0,arr.length-1,X);
}
//递归方法查找
private static void search1(int []arr,int start,int end,int X) {
int mid =(start+end)/2;
if (X==arr[mid]){
System.out.println("找到了下标是:"+mid);
return;
}else if(X>arr[mid]){
start = mid+1;
}else {
end = mid-1;
}
if(start<=end)
search1(arr,start,end,X);
else
System.out.println("找不到");
}
//循环方法查找
private static void search(int []arr,int X) {
int start =0,end = arr.length-1,mid = (start+end)/2;
while(start<=end){
if(X==arr[mid]){
System.out.println("找到了,下标是:"+mid);
return;
}else if(X>arr[mid]){
//在右边
start = mid+1;
}else {
end = mid-1;
}
mid = (start+end)/2;
}
System.out.println("找不到");
}
}
没十遍练习那是根~~~本学部会的
