在网上没找到java版合适的二分查找代码,自己写了个,备忘:
/** * 二分查找,返回index */ public int search(int a[], int key) { if(a==null || a.length==0){ return -1; } int beginIndex=0; int endIndex=a.length; while(true){ int halfIndex=(int)Math.ceil(beginIndex+((endIndex-beginIndex)/2)); if(a[halfIndex]==key){ return halfIndex; } if(endIndex-beginIndex<=1){ return -1; } if(a[halfIndex]>key){ endIndex=halfIndex; }else{ beginIndex=halfIndex; } } }?
?