我们在面试或者实际应用中总少不了运算一些东西,使我们的效率更高,下面是二分算法的一个例子。
private static int Search(int[] ones,int key){
int low = 0;
int size= ones.length-1;
int middle = 0;
if(key < ones[low] || key > ones[size] || low > size){
return -1'
}
while(low <= size){
middle = low + size >>> 1;//效果更高,也可以用(low + size) / 2
if(ones[middle] > key){
size= middle - 1 ;
}else if(ones[middle] < key){
size = middle + 1;
}else{
return middle;
}
}
return -1;
}