import java.util.Arrays;
public class binarySearcherdemo {
public static void main(String[] args) {
int [] number ={4,58,11,34,88,45};
Arrays.sort(number); //排序
int index =binarySearch(number,11);
System.out.println(index);
}
private static int binarySearch(int [] x,int n){
int start =0;
int end =x.length-1;
int mid=-1;
while(start<=end){
mid = (start+end)/2;
if(n==x[mid]){
System.out.println("已经找到");
return mid;
}else if(n<x[mid]){
end = mid-1;
}else if(n>x[mid]){
start = mid+1;
}
}
return -1;
}
}
/* 递归算法
* int BinSearch(int Array[],int low,int high,int key要找的值)
{
if (low<=high)
{
int mid = (low+high)/2;
if(key == Array[mid])
return mid;
else if(key<Array[mid])
return BinSearch(Array,low,mid-1,key);
else if(key>Array[mid])
return BinSearch(Array,mid+1,high,key);
}
else
return -1;
}*/
/*非递归算法
* int BinSearch(int Array[],int low,int high,int key要找的值)
{
if (low<=high)
{
int mid = (low+high)/2;
if(key == Array[mid])
return mid;
else if(key<Array[mid])
return BinSearch(Array,low,mid-1,key);
else if(key>Array[mid])
return BinSearch(Array,mid+1,high,key);
}
else
return -1;
}
*/
二分查找(递归与非递归)
最新推荐文章于 2021-12-09 22:26:53 发布