import java.util.Arrays;
public class Search {
public static void main(String[] args) {
/*
* 想在数组中快速查找是否包含一个确定的值
* 数组已经完成排序
*/
int[] arr = {100,99,23,35,1,12,77};
Arrays.sort(arr);
Search search = new Search();
int index=search.binarySearch(arr, 77);
System.out.println(index);
}
/**
* 二分查找数组a中是否包含数字num
* @param a 数组
* @param num 数值
* @return 返回对应数值的下标,如果不包含返回-1
*/
public int binarySearch(int[] a,int num){
int min = 0;//起始的最小下标
int max = a.length-1;//起始的最大下标
while(min<=max){
int mid = (min+max)/2;//中间下标
if(num>a[mid]){
min = mid+1;
}else if(num==a[mid]){
return mid;
}else if(num<a[mid]){
max = mid-1;
}
}
return -1;
}
}
二分查找法
最新推荐文章于 2023-08-28 11:21:16 发布
2239

被折叠的 条评论
为什么被折叠?



