本帖最后由 魏涞 于 2012-5-12 11:18 编辑
class ArrayTest5
{
public static void main(String[] args)
{
int [] arr={1,12,5,8,12,90}; //顺便说一句,折半查找是对有序数组进行查找的,你这里的数组是无序的
int index=getIndex(arr,20);
System.out.println("index="+index);
}
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])
min =mid+1;
else (key<arr[mid]) //这里是语法错误,else是不带条件判断的,要用的话,应该改为else if(),这里可以不用判断,直接else max=mid-1;
max=mid-1;
mid=(max+min)/2;
}
return mid;
}
public static int getIndex(int [] arr, int key)
{
for (int x=0;x<arr.length;x++ )
{
if (arr[x]=key) //这里写错了,应该是arr[x]==key
return x;
}
return -1;
}
}
|