黑马程序员技术交流社区
标题:
关于二分查找
[打印本页]
作者:
gaojing69485542
时间:
2015-11-2 23:25
标题:
关于二分查找
二分查找代码怎么写呀 一点思路没有
作者:
石三伢子1
时间:
2015-11-3 18:44
1,先不用考虑循环的问题,
先确定第一次找查找的min,max,和mid的值;
2,第二次,根据key<,>,=mid的结果,
计算第二次min,max,mid的值的位置;
3,分析,头两次间的规律,建立循环,内部用if(){}else{}块进行流程控制;
4,设置循环结束条件,就是当max<=min是循环查找结束;
奉上自己写的代码,自己测试没问题;
public class HelloWorld {
public static void main(String []args) {
int[] arr = {1,2,3,4,6,7,8,9};
System.out.println(erFen(arr,10));
}
public static int erFen(int[] arr,int key){
int min,max,mid;
min=0;
max=arr.length-1;
while(max>min){
mid = min+max;
if(key==arr[mid]){
return mid;
}
else if (key<arr[mid]){
max=mid-1;
}
else{
min=mid+1;
}
}
return -min;
}
}
作者:
ash午夜阳光
时间:
2015-11-3 21:51
石三伢子1 发表于 2015-11-3 18:44
1,先不用考虑循环的问题,
先确定第一次找查找的min,max,和mid的值;
2,第二次,根据key,=mid的结果,
while里面第一句有问题发现没?
作者:
石三伢子1
时间:
2015-11-4 09:56
呵呵,谢谢前辈;更正一下,mid = (min+max)/2;
作者:
ppaapc
时间:
2015-11-4 21:01
流程想清楚 代码自然就有了
作者:
我若为神
时间:
2015-11-4 21:40
老师都没讲过啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2