二分查找(两种)
Posted ohana!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分查找(两种)相关的知识,希望对你有一定的参考价值。
在二分查找中,有一个关键点,就是关于传入方法当中的数组长度是否-1,其影响在代码编写过程中的边界问题
1.数组长度 - 1
public static int binarySearch(int[] array,int n){
int left = 0;
int right = array.length - 1;
while(left <= right){
int mid = (left + right) / 2;
if (array[mid] == n){
return mid;
}else if (array[mid] < n){
left = mid + 1;
}else{
right = mid - 1;
}
}
return -1;
}
public static void main(String[] args) {
int[] arr = {1,2,3,4,5,6,7,8,9};
int ret = binarySearch(arr,5);
System.out.println(ret);
}
运行结果:
2.数组长度不 - 1
public static int binarySearch2(int[] array,int n){
int left = 0;
int right = array.length;
while(left < right){
int mid = (left + right) / 2;
if (array[mid] == n){
return mid;
}else if (array[mid] < n){
left = mid + 1;
}else{
right = mid;
}
}
return -1;
}
public static void main(String[] args) {
int[] arr = {1,2,3,4,5,6,7,8,9};
int ret = binarySearch2(arr,1);
System.out.println(ret);
}
运行结果:
以上是关于二分查找(两种)的主要内容,如果未能解决你的问题,请参考以下文章