public static int helfSearch(int[]num,int key){
int left=0;//数组左边
int right=num.length-1;//数组右边
int mid=(left+right)/2;//中间值
while(key!=num[mid]){
if(key>num[mid]){
min+=1;
}
else if(key<num[left]){
right-=1;
}
mid=([left+ right)/2;
}
public class TestBinarySearch {
/**
* 基于升序方式二分法查找
*
* @param arr
* 数组字典
* @param key
* 待查的字
* @return 待查字的数组下标
*/
public static int find(int[] arr, int key) {
int len = arr.length;
int index = 0;// 像一个“偏爱于中间地段”生存的游标,
int start = 0;
int end = len - 1;
while (true) {
if (start > end) {
// 返回方式一
return -1;
// 如果是按方式一返回说明未找到
}else{
index = (start + end) / 2;
if (key > arr[index]) {
start = index+1;
} else if (key < arr[index]) {
end = index-1;
} else {
// 返回方式二
return index;
// 如果是按方式一返回说明找到了,并且返回查找到的下标
}
}
}//end of while loop
}
public class TestBinarySearch {
/**
* 基于升序方式二分法查找
*
* @param arr
* 数组字典
* @param key
* 待查的字
* @return 待查字的数组下标
*/
public static int find(int[] arr, int key) {
int len = arr.length;
int index = 0;// 像一个“偏爱于中间地段”生存的游标,
int start = 0;
int end = len - 1;
while (true) {
if (start > end) {
// 返回方式一
return -1;
// 如果是按方式一返回说明未找到
}else{
index = (start + end) / 2;
if (key > arr[index]) {
start = index+1;
} else if (key < arr[index]) {
end = index-1;
} else {
// 返回方式二
return index;
// 如果是按方式一返回说明找到了,并且返回查找到的下标
}
}
}//end of while loop
}