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