二分法查找
数组是已经按照升序或者降序排列好的
下列方法中包括线性查找和二分法
public class Erfenfa{
public static void main(String[] args) {
long [] arr=new long [10];
for(int i=0;i<arr.length;i++){
arr[i]=i*10;
}
long start=System.currentTimeMillis();
System.out.println(binarySearch(arr,10));
long end=System.currentTimeMillis();
System.out.print("l_time:"+(end-start));
}
public static int search(long [] arr,long key){
for(int i=0;i<arr.length;i++){
if(arr[i]==key){
return i;
}
}return -1;
}
public static int binarySearch(long [] arr,long key){
int left = 0;
int right=arr.length-1;
int mid;
while(left<=right){
mid=(left+right)/2;
if(key==arr[mid]){
return mid;
}else if(key>arr[mid]){
left=mid+1;
}else{
right=mid-1;
}
}return -1;
}
}