一、二分搜索法实现类
public class BinarySearch {
public static int BinarySearch1(int a[],int x,int n)
{
int left=0;int right=n-1;
while(left<=right)
{
int middle=(left+right)/2;
if(x==a[middle]) return middle;
if(x>a[middle]) left=middle+1;
else right=middle-1;
}
return -1;
}
}
public static int BinarySearch2(int a[],int x,int n)
{
int left=0;int right=n-1;
while(left<right-1)
{
int middle=(left+right)/2;
if(x<a[middle]) right=middle;
else left=middle;
}
if(x==a[left]) return left;
return -1;
}
public static int BinarySearch3(int a[],int x,int n)
{
int left=0;int right=n-1;
while(left+1!=right)
{
int middle=(left+right)/2;
if(x>=a[middle]) left=middle;
else right=middle;
}
if(x==a[left]) return left;
return -1;
}
public static int BinarySearch4(int a[],int x,int n)
{
if(n>0&&x>=a[0])
{
int left=0;int right=n-1;
while(left<right)
{
int middle=(left+right)/2;
if(x<a[middle]) right=middle-1;
else left=middle;
}
if(x==a[left]) return left;
}
return -1;
}
public static int BinarySearch5(int a[],int x,int n)
{
if(n>0&&x>=a[0])
{
int left=0;int right=n-1;
while(left<right)
{
int middle=(left+right+1)/2;
if(x<a[middle]) right=middle-1;
else left=middle;
}
if(x==a[left]) return left;
}
return -1;
}
public static int BinarySearch6(int a[],int x,int n)
{
if(n>0&&x>=a[0])
{
int left=0;int right=n-1;
while(left<right)
{
int middle=(left+right+1)/2;
if(x<a[middle]) right=middle-1;
else left=middle+1;
}
if(x==a[left]) return left;
}
return -1;
}
public static int BinarySearch7(int a[],int x,int n)
{
if(n>0&&x>=a[0])
{
int left=0;int right=n-1;
while(left<right)
{
int middle=(left+right+1)/2;
if(x<a[middle]) right=middle;
else left=middle;
}
if(x==a[left]) return left;
}
return -1;
}
}
二、二分搜索法测试类
public class BinarySearchTest {
public static void main(String agrs[])
{
int[] a=new int[]{5,17,21,45,69,84,105};
//System.out.print(BinarySearch.BinarySearch1(a,5,a.length));
//System.out.print(BinarySearch.BinarySearch1(a,105,a.length));
//System.out.print(BinarySearch.BinarySearch1(a,3,a.length));
//System.out.print(BinarySearch.BinarySearch1(a,120,a.length));
//System.out.print(BinarySearch.BinarySearch1(a,17,a.length));
}
}