1 @Test //二叉树(二分法)查询数组元素的位置;
2 public void test6() {
3 int a[] = {4,5,6,8,10,20,30};//二叉树的使用条件是:有序的数组元素;易错点:注意二叉树的适用条件;
4 int left = 0;
5 int middle;
6 int right = a.length - 1;
7 System.out.println("请输入您要查找的数:");
8 Scanner sc = new Scanner(System.in);
9 int b = sc.nextInt();
10 for(int i=0;i<a.length;i++) {
11 middle= (left + right)/2;//每次都和中间值比较;
12 if(b==a[middle]) {
13 System.out.println(middle);
14 break;
15 }else if(b>a[middle]) {//查找值大于中间值,则查找值在中间值右边循环,直到等于中间值循环结束;
16 left = middle+1;
17 }else {
18 right = middle-1;//查找值小于中间值,则查找值在中间值左边循环,直到等于中间值顺环结束;
19 }
20 }
21 }