数组折半查找(二分法)方法

Posted private-mingmie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组折半查找(二分法)方法相关的知识,希望对你有一定的参考价值。

//折半查找(二分法)
public void arrayHalfQuery() {
    //定义一个数组,类型为int整型数据类型
    int[] num = {1,3,4,7,9,10,12,15,17,19,21,22,25,26,28,29,30};
    //定义一个要查找的key值
    int key = 18;
    //取出数组中最大值下标和最小值下标
    int min = 0;
    int max = num.length-1;
    //调用死循环
    while(true) {
        //定义一个对半查找的中间值下标
        int mid = (min+max)/2;
        //当key的值与中间值下标的值相等,则查找成功,并且跳出循环
        if(key == num[mid]) {
            System.out.println("你要查询值的下标:"+mid);
            break;
            //当key的值大于num[mid],则排除左边,min往中间mid+1移动
        }else if(key > num[mid]) {
            min = mid +1;
            //当key的值小于num[mid],则排除右边,max往中间mid-1移动
        }else if(key < num[mid]) {
            max = mid -1;
        }
        //当max小于min,则说明已经查找完整个数组也没有找到,则结束死循环
        //因为key只有三种情况,所以要单独使用if分支语句,不能使用else if
        if(max<min) {
            System.out.println("你要查找的数值在本数组中不存在!");
            break;
        }
    }
}

以上是关于数组折半查找(二分法)方法的主要内容,如果未能解决你的问题,请参考以下文章

二分查找(折半查找)

二分查找(折半查找)

算法知识常用算法详解丨二分查找法(折半查找)

二分查找法(折半查找法)

折半查找<二分查找>

c语言编程实现“折半查找”的过程。