黑马程序员技术交流社区
标题:
java折半查找法
[打印本页]
作者:
ToGame
时间:
2015-9-19 10:35
标题:
java折半查找法
需求:折半查找则是去有序数组中间的那个数与要查找的数字进行比较,如果是则找到
如果不是则根据数组的排列顺序,最大索引=中间索引-1,最小索引=中间索引+1
由此反复知道找到为止!
代码如下:
int number=sc.nextInt();
int count=a.length;
for(int i=0,max=count,moi=count/2,min=0;max>min;moi=(max+min)/2)
{
if(a[moi]==number)
{
System.out.println("yes--"+moi);
break;
}
if(a[moi]>number)
{
min=moi+1;
}
if(a[moi]<number)
{
max=moi-1;
}
}
OK,程序运行顺利,(*^__^*) 嘻嘻……
作者:
水果牛牛
时间:
2015-9-19 11:58
我觉得还要加上一句,就是如果没找到的话应该输出个东西告诉调用者。
作者:
裘-样
时间:
2015-9-19 13:03
楼上说的有道理!
作者:
zx0210
时间:
2015-9-19 14:19
一般没找到就return -1,写这个代码只是为了应付面试,以后一个方法就搞定Arrays.binarySearch(a);
作者:
一个人的朝圣
时间:
2015-9-19 17:23
感觉还不错 多谢分享 !
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2