二分查找

71次阅读

共计 463 个字符,预计需要花费 2 分钟才能阅读完成。

1、思想:找中间的数,变换左右边界值
2、编程要点:设置 l<=r 作为作为循环判断标志
3、代码
import java.util.*;

/**
* 1、找到
* 2、没找到
*/
public class Main {

public static void main(String[] args) {
int[] arr = new int[]{1, 4, 7, 9, 12, 15, 17, 25, 33};
int target = 1;
System.out.println(bsearch( arr, target));
}

private static boolean bsearch(int[] arr, int target) {
int l = 0;
int r = arr.length – 1;
int m =0;
boolean found = false;
while (l <= r){
m = (l + r) / 2;
if (arr[m] == target){
System.out.println(m);
return found = true;
}else {
if (arr[m] > target){
r = m – 1;
}else {
l = m + 1;
}
}
}
return false;

}
}

正文完
 0