美文网首页
二分查找

二分查找

作者: junjun2018 | 来源:发表于2018-08-01 14:01 被阅读0次

    二分查找的关键在于: 通过起始位置标记中心位置
    二分查找的数组必须是有序的。

    public class BinarySearchDemo {
    
        public static void main(String[] args) {
            int[] arr = {0, 2, 4, 5, 7, 8, 11, 33, 66};
            bsearch(arr, 2);
        }
    
    
        public static void bsearch(int arr[], int target) {
            //初始化起始位置,声明中间位置
            int start = 0;
            int end = arr.length - 1;
            //此变量要带到循环中,即时改变
            int middle;
            //由于不知道具体循环的次数,采用while循环,结束条件为开始位置比结束位置还要大
            while (start <= end) {
                middle = (end - start) / 2;
                //如果在中间位置左边,开始位置不变,结束位置为middle-1,反之,结束位置不变,开始位置为midd+1
                if (target < arr[middle]) {
                    end = middle - 1;
                } else if (target > arr[middle]) {
                    start = middle + 1;
                } else {
                    System.out.println("您要查找的元素在" + middle + "处");
                    break;
                }
            }
    
        }
    }
    //结果
    您要查找的元素在1处
    

    相关文章

      网友评论

          本文标题:二分查找

          本文链接:https://www.haomeiwen.com/subject/tlalvftx.html