二分法查找
二分法查找又叫折半查找,必须要对有序的数组才可以使用。
/**
二分法查找又叫折半查找,必须要对有序的数组进行操作。
ps: 方法的命名要“见名思意” halfSearch()
返回值是数组的角标为int类型,需要两个未知参数 被查找的数组和查找的目标值
**/
public static int halfSearch(int[] arr,int key){
int min,mid,max;
min = 0;
max = arr.length - 1;
mid = (min + mid)/2;
//循环的次数不能确定,所以用while()循环比较好
while(arr[mid]!=key){//循环体每执行一次都会重新计算mid的值
if(key>arr[mid]){
min = mid + 1;
}
else if(key < arr[mid]){
max = mid -1;
}
if(min>max){
return -1; //没有找到返回-1
}
}
return mid;
}