美文网首页
算法基础—二分法查找

算法基础—二分法查找

作者: JackDaddy | 来源:发表于2021-05-10 10:30 被阅读0次

    一、前言

        二分法查找又称为折半查找,二分法查找的基本思想是把数组中的元素从小到大有序地存放进数组中,首先将给定值与数组中间位置的值作比较,如果相等,则匹配成功。否则,若比较值小了,则在数组的前半部分继续二分法查找;若比较值大了,则在数组后半部分进行二分法查找。如此循环往复,直到比较值与中间值匹配,完成查找。

    二分查找

    二、代码实现

    /**
     * 二分法查找
     */
    public class BinarySearch {
    
        public static void main(String[] args) {
    
            int[] array = {81, 51, 88, 15, 59, 20, 1, 50, 66, 77};
            //打印数组
            System.out.println(Arrays.toString(array));
            //对数组进行排序
            Arrays.sort(array);
            //打印排序数组
            System.out.println(Arrays.toString(array));
    
            int index = binarySearch(array, 77);
            System.out.println("查找的值为:77,下标为:" + index);
        }
    
        public static int binarySearch(int[] arrays, int value) {
            if (arrays.length <= 0) {
                return 404;
            }
            int low = 0;
            int high = arrays.length - 1;
            while (low <= high) {
                int mid = (low + high) / 2;
                if (arrays[mid] == value) {
                    return mid;
                }
                if (value < arrays[mid]) {
                    high = mid - 1;
                } else {
                    low = mid + 1;
                }
            }
    
            return 404;
        }
    }
    
    以下是输出结果,其中第一行是未排序的数组,第二行是排序完的数组: 输出结果

    相关文章

      网友评论

          本文标题:算法基础—二分法查找

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