二分法检索
二分法检索(binary search)又称折半检索,二分法检索的基本思想时设数组中的元素从小到大有序存放在数组中,首先将给定值key于数组中间位置上元素的关键码(key)比较,如果相等则检索成功。
若key小,则在数组前半部分中继续进行二分法检索。
若key大,则在数组后半部分中继续进行二分法检索。
public static int binarySearch(int[] s,int value) {
Arrays.sort(s);//查找前先进行排序
int low = 0;
int high = s.length-1;
while(low<=high) {
int mid = (low+high)/2;
System.out.println(mid);
if(value==s[mid]) {
return mid;
}
if(value<s[mid]) {
high = mid-1;
}
if(value>s[mid]) {
low = mid+1;
}
}
return -1;
}