java二分算法

来源:互联网 发布:淘宝血滴子买家秀 编辑:程序博客网 时间:2024/06/04 19:40

1、前提:二分查找的前提需要查找的数组必须是有序的,我们这里默认使用升序。

2:、原理:将数组分为3部分,中值前、中值、中值后。首先和数组的中值比较,如果小于中值则在中值前面查找,如果等于中值则直接返回,如果大于中值则向中值后面找,然后

依次是个递归过程,所以此类问题适合用递归,用递归实现的都可以用循环实现。

3、实现代码:

<pre name="code" class="java">public class BinarySearch{public int binarySearchLoop(int sortArray, int findValue){int left = 0;int right = sortArray.length;while(left<=right){//中间位置int middle = (left + right)/2;//等于中值直接返回if(findVale == sortArray[middle]){return middle;}else if(findVale < sortArray[middle]){//小于中值,向前查找right = middle-1;}else{//大于中值,向后查找left = middle+1;}}//找不到return -1;}}



0 0