黑马程序员技术交流社区

标题: ArraysDemo3 [打印本页]

作者: 果蝇    时间: 2015-9-9 23:09
标题: ArraysDemo3
import java.util.Arrays;

/*
        A:画图演示
                二分查找  
                       
                        {11,22,33,44,55,66,77}  --> 找 22
        B: 思想:        每一次都查中间的那个元素,比较大或者小就能减少一般的元素
*/

public class ArraysDemo3 {
        public static void main(String[] args) {
                //定义数组
                int[] arr = {11,22,66,33,44,55,66,77,88};
                int target  =78;
               
               
                 //int index =  queryByHalf(arr, target);
                int index = Arrays.binarySearch(arr, target);
               
                ArraysTool.printArr(arr);
                Arrays.sort(arr);
                ArraysTool.printArr(arr);
               
                // System.out.println("您查找的元素的角标为:" + index);
       
        }

        private static int queryByHalf(int[] arr, int target) {
                //定义角标
                int start = 0; //初始位置
                int end = arr.length-1; //末尾位置
                int index = -1;
                //循环比较
                while (start <= end) {
                        int mid = (start + end) /2;
                       
                        // 比较
                        if (arr[mid] >  target){
                                end = mid-1;
                               
                        }else if(arr[mid] < target){
                                start = mid+1;
                        }else{
                               
                                System.out.println("找到了");
                                index = mid;
                                return index;
                        }
                }
                return index;
        }
}






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2