二分法查找

来源:互联网 发布:中日建交 知乎 编辑:程序博客网 时间:2024/06/06 00:33
  • 二分查找:
    * a:前提条件:已排序的数组*
    b:确定low与high的值,计算中间点的索引
    low=0,hight=n-1 mid=(low+high)/2
    c:根据中间值索引对应的元素值,与要查找的数num进行比较
    如果a[mid]==num,找到
    如果a[mid]>num,在中间点的左边,修改high=mid-1
    如果a[mid]< num,在中间点的右边,修改low=mid+1
public class Demo022 {    public static void main(String[] args) {        int[] a={1,2,3,4,5,6,9};        int high=a.length-1;        int n=9;//定义要查找的数字        //也可用用Scanner输入        int mid=0;          int low=0;        boolean flag=false;        while(low<=high){            mid=(low+high)/2;            if(a[mid]==n){                flag=true;                break;            }else if(a[mid]>n){                high=mid-1;            }else if(a[mid]<n){                low=mid+1;            }        }        if(flag){            System.out.println("找到了");            System.out.println("下标是:"+mid);        }else {            System.out.println("查不出来");        }    }}
0 0
原创粉丝点击