Java中折半查找

来源:互联网 发布:java预约系统源代码 编辑:程序博客网 时间:2024/06/05 07:17

折半查找前提:要在一个有序的数组中
折半查询

public class Demo05 {    public static void main(String[] args) {        int[] array = new int[] {3,6,8,9,10,11,13,19,25};    //声明角标 最小 和 最大 角标 和折半角标        int min=0;        int max=array.length-1;        int mid=(max+min)/2;        //声明要查找的值         int key=13;        //循环查找 循环里肯定要折半的操作        //我现在已经 明确知道 循环什么时候停止         //使用 key 和 中间角标的值 比较 如果相等 循环停止        while(key!=array[mid]) {           if(key>array[mid]) {               min=mid+1;           }else if(key<array[max]){            max=mid-1;        }             //重复折半的操作            mid=(max+min)/2;            //如果数组中没有这个数 会造成死循环             //需要一个出口让程序停止           if(min>max) {               //这里说明 没找到这个数 需要停止循环               mid=-1;               break;           }        }System.out.println("坐标是:"+mid);    }}
原创粉丝点击