二分查找又称折半查找,将待查找的键key与数组中间值array[mid]比较,如果相等,则查找成功,
如果key小于数组中间值,则在数组前半段查找,如果key大于数组中间值,则在数组后半段查找,
如果没有则查找失败。
优点:查找速度快,比较次数少,平均性能好
缺点:要求待查表是有序表,插入、删除困难
递归方法:
public static int search(int[] arr,int key){
int begin = 0,end = arr.length-1;
while(begin<=end){
<pre name="code" class="java"> int mid = (begin+end)/2;
if(arr[mid] == key)return mid;//查找成功返回key值下标else if(arr[mid] > key){end = mid-1;}else {begin = mid+1;}}return -1;//查找失败返回-1}