package search;
public class BinarySearch {
public static void main(String[] args){
int[] data = {1,2,3,4,5,6,7,8,9,10};
System.out.println(binarySearch(data,7,0,data.length-1));
}
//二分查找-迭代
public static int binarySearch(int[] data,int key){
int left = 0,right = data.length-1;
while(left<=right){
int mid = left+((right-left)>>1);
if(data[mid]>key){
right = mid-1;
}else if(data[mid]<key){
left=mid+1;
}else{
return mid;
}
}
return -1;
}
//二分查找-递归
public static int binarySearch(int[] data,int key,int left,int right){
if(left>right){
return -1;
}
int mid = left+((right-left)>>1);
if(data[mid]>key){
return binarySearch(data,key,left,mid-1);
}else if(data[mid]<key){
return binarySearch(data,key,mid+1,right);
}else{
return mid;
}
}
}
近期评论