public static int binarySearch(int a[],int k)
{
//二分查找,只使用与顺序表的查找
int low=0; int high=a.length-1;//最后一个元素
while(low<=high)
{
int middle=(low+high)/2;
if(k==a[middle])
return middle;
if (k < a[middle])
high=middle-1;
if(k>a[middle])
low=middle+1;
}
return -1;//表示没有找到
}
前提是数据有序二分法查找适用于大的数据,但前提条件是数据必须是有序的,他的原理是先和中间的比较,如果等于就直接返回,如果小于就在前半部分继续使用二分法进行查找,如果大于则在后半部分继续使用二分法进行查找……我们来看下代码 public static int binarySearch(int a[],int k) { //二分查找,只使用与顺序表的查找 int low=0; int high=a.length-1;//最后一个元素