美文网首页
算法<二>二分查找

算法<二>二分查找

作者: 小吖么小一郎 | 来源:发表于2019-07-05 13:53 被阅读0次

适用于查找有顺序的数组,通过每次区间减半,增加效率

package com.example.demo.SortAlgorithm;
/*
 *
 * @Author: i_heh
 * @Date: 2019/7/4
 * @Time: 18:15
 * @Description: 二分查找
 *
 */
public class BinarySearch {
    public static int binary(int key){
        //从升序排序的数组中查找KEY所在索引
        int[] arr = new int[]{0,1,4,6,7,8,9,10};
        //初始化查找的起点和终点
        int end=arr.length-1;
        int start=0;
        while (start<=end){
            //每次都从中间开始找
            int mid=(end+start)/2;
            System.out.println("mid == " + mid);
            if (arr[mid]==key){
                return mid;
            }else if (arr[mid]>key){
                //中间数大于key,就找比中间数小的
                end = mid;
            }else {
                start = mid;
            }
        }
        return -1;//表示未找到
    }
    public static void main(String[] args) {
        int i = binary(4);
        System.out.println(i);
    }
}

相关文章

网友评论

      本文标题:算法<二>二分查找

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