Java实现二分查找
1.优点是找到速度较快,时间复杂度O(log2n);
2.缺点是得用有序数组,且插入、删除麻烦;
3 代码如下
// 二分查找
public static int BinarySearch(int[] arr, int key){
int left = 0;
int right = arr.length - 1;
int mid = 0;
while(left <= right){
mid = (left + right)/2;
if(arr[mid] > key){ //比关键字大,则关键字在左侧
right = mid - 1;
}else if(arr[mid] < key){ //比关键字小,则关键字在右侧
left = mid + 1;
}else{
return mid;
}
}
return -1; //没有找到
}