二分查找:
时间复杂度(O(log2n))
使用排序好的数组,时间和空间复杂度较低。
public static int banfen(int []arr,int value){
int left=0;
int right=arr.length-1;
int middle;
int []brr=new int[]{value,0};
while(left<right){
middle=(right-left)/2+left;
if(arr[middle]>value){
right=middle;
}
else if(arr[middle]<value){
left=middle;
}
else if(arr[middle]==value)
{
return 1;
}
}
return -1;
}
main函数:
public static void main(String []args){
int []arr={1,3,4,5,5,7,8,9};
int value=5;
int a=banfen(arr,5);
if(a==1) {
System.out.println("有这数");
}
else
{
System.out.println("没有这数");
}
}