数据结构二分查找

Posted whutwxj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构二分查找相关的知识,希望对你有一定的参考价值。

/**
* 循环实现二分查找算法
*/
public static int binarySearch(int[] arr, int x){
int low = 0;
int high = arr.length - 1;
while(low <= high){
int middle = (low + high)/2;
if (x == arr[middle]){
return middle;
}else if(x < arr[middle]){
high = middle - 1;
}else{
low = middle + 1;
}
}
return -1;
}

/**
* 递归查找
*/
public static int binarySearchRecursive(int[] arr, int x, int startIndex, int endIndex){
int middle = (startIndex + endIndex) / 2;
//三个终止条件
if(x < arr[startIndex] || x > arr[endIndex] || startIndex > endIndex){
return -1;
}
if (x < arr[middle]){
return binarySearchRecursive(arr, x, startIndex, middle - 1);
}else if (x > arr[middle]){
return binarySearchRecursive(arr, x, middle + 1, endIndex);
}else{
return middle;
}
}



































以上是关于数据结构二分查找的主要内容,如果未能解决你的问题,请参考以下文章

Python数据结构与算法(19)---二分查找

Python数据结构与算法(19)---二分查找

Python数据结构与算法(19)---二分查找

Python数据结构与算法(19)---二分查找

说一下二分查找

Python数据结构与算法篇-- 二分查找与二分答案