折半查找,可以提供效率,但是必须保证该数组时有序的数组
第一种方法;
pubilc static int halfsearch(int [] arr,int key )
{
int min,max,mid;
max=arr.length-1;
mid=(max+min)/2;
while(arr[mid]!=key)
{
if(key>arr【mid】)
min=mid+1;
else if (key<arr[mid])
max=mid-1;
if (min>max)
return-1;
mid=(max+min)/2;
}
return mid;
}
折半查找第二种方法
public static int halfsearch_2(int 【】 arr,int key)
{
int min=0,maxar.length-1,mind;
while(min<=max)
{
mid=(max+min)>>1;
if (key>arr【mid】)
min=mid+1;
else if (key<arr[mid])
max=mid-1;
else
return mid;
}
ruturn-1;
}
class ArrayTest1
{
public static void main(String[] args)
int [] arr={2,4,5,7,19,32,45}
int index=halfsearch(arr,320);
System.out.println("index="+index);
} |
|