日期:2014-05-20  浏览次数:21002 次

java se的相关问题
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;
}
}为什么得到的结果与排列的位置会不一样呢

------解决方案--------------------
学习下,LZ可以调试看看,看哪有问题
------解决方案--------------------
非常感谢!464128976@qq.com