public class Binary{
public static void main(String[]args){
int []a={2,3,5,6,7,8,9,11,13,14,15,16,23};
int num=16;
System.out.println( Testbinary(a,num));
}
public static int binary(int[]a,int num){
for(int i=0;i<a.length;i++){
if(a[i]==num)
return i;
}
return -1;
}
public static int Testbinary(int[]a,int num){
int startnum=0;
int endnum=a.length-1;
int m=(startnum+endnum)/2;
while(startnum<=endnum){
if(a[m]==num)
return m;
if(a[m]>num){
endnum=m-1;
}
if(a[m]<num){
startnum=m+1;
}
m=(startnum+endnum)/2;
return m;
}
return -1;
}
}为什么得到的结果与排列的位置会不一样呢
public static void main(String[]args){
int []a={2,3,5,6,7,8,9,11,13,14,15,16,23};
int num=16;
System.out.println( Testbinary(a,num));
}
public static int binary(int[]a,int num){
for(int i=0;i<a.length;i++){
if(a[i]==num)
return i;
}
return -1;
}
public static int Testbinary(int[]a,int num){
int startnum=0;
int endnum=a.length-1;
int m=(startnum+endnum)/2;
while(startnum<=endnum){
if(a[m]==num)
return m;
if(a[m]>num){
endnum=m-1;
}
if(a[m]<num){
startnum=m+1;
}
m=(startnum+endnum)/2;
return m;
}
return -1;
}
}为什么得到的结果与排列的位置会不一样呢
解决方案 »
- 问一个复杂的return问题
- java 连接 oracle数据库问题
- 关于IO读写问题,在线等
- java面向对象编程习题(给main方法传参)
- ObjectInputStream类和ObjectOutputStream类问题,高手指教啊!
- 能不能把.class 或者 .java 文件 编译成 .exe 文件!!
- 为什么每次我离开这个窗口,再回来他会变花,有什么办法解决
- 怎么提取字符
- 求日志管理类的代码!谢谢!
- 关于processEvent 与processActionEvent两个事件,在线等候
- Java方法重写问题
- eclipse调试的时候,能否看class文件的jvm pcode执行代码?
m=(startnum+endnum)/2;
//return m; 注掉
}
return -1;
}
}
看看是不是你想要的结果
return m;
后面return m会直接退出while循环