黑马程序员技术交流社区
标题:
得到的结果不是想要的,哪里出问题了?求指点
[打印本页]
作者:
李前进
时间:
2014-3-16 12:12
标题:
得到的结果不是想要的,哪里出问题了?求指点
class HalfSearch
{
public static void main(String[] args)
{
//折半查找
int arr[]={5,1,6,4,2,8,9};
int index=halfSearch(arr,2);
System.out.println("2所在位置下角标为:"+index);
}
//折半查找,效率高,但是必须保证数组为有序数组
public static int halfSearch(int[] arr,int key)
{
//int min=0,max=arr.length-1,mid=(max+min)/2;
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 if(key<arr[mid])
max=mid-1;
if(min>max)
return -1;
mid=(mid+max)/2;
}
return mid;
}
}
复制代码
作者:
李前进
时间:
2014-3-16 12:14
数组是拷贝过来的,忘了该数组了。。。。。。:L
作者:
李前进
时间:
2014-3-16 12:15
折半查找只适合于有序的数组!
作者:
郝大龙0104
时间:
2014-3-16 14:04
Arrays.sort(arr); 加上这一句 对数组进行升序排列。。
作者:
骑着毛驴去赶
时间:
2014-3-16 18:38
要用sort方法对原数组进行排序啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2