您的位置:首页 > 编程语言 > Java开发

java基础学习记录之数组折半查找的学习与练习四

2014-03-01 18:52 656 查看
/*
折半查找的练习。
折半查找只能查找有序数组。
*/
class ArrayTest4
{
/*折半查找的第一种方法。
public static int halfSearch(int[] arr,int key)
{
int min,max,mid;
min=0;
max=arr.length-1;
mid=(max+min)/2;
while(arr[mid]!=key)
{
if(key<arr[mid])
max=mid-1;
else
min=mid+1;
mid=(min+max)/2;
if(min>max)
return -1;
}
return mid;
}
*/
/*折半查找第二种方法。
public static int halfSearch_2(int[] arr,int key)
{
int min=0,max=arr.length-1,mid;
while(min<=max)
{
mid=(max+min)>>1;
if(key<arr[mid])
max=mid-1;
else
if(key>arr[mid])
min=mid+1;
else
return mid;
}
return min;//如果要插入某值的话,可以返回要插入的那个值在数组中插入的位置。
}
*/
public static int halfSearch(int[] arr,int key)
{
int min=0,max=arr.length-1,mid;
while(min<=max)
{
mid=(max+min)>>1;
if(key<arr[mid])
max=mid-1;
else
if(key>arr[mid])
min=mid+1;
else
return mid;
}
return -1;
}
public static void main(String[] args)
{
int[] arr={2,3,4,5,6,7,8,12,32,54,67};
int index=halfSearch(arr,12);
System.out.println("index="+index);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: