算法:二分查找法

一、思路

核心:不断二分缩小查找范围。

二分查找又叫折半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小,则在后半部分循环这个查找的过程。直到查找到了为止,否则序列中没有待查的关键字。

二、代码

java 复制代码
public class BiSearchTest {

    public static void main(String[] args) {
        int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9};

        System.out.println(biSearch(array, 1));
        System.out.println(biSearch(array, 3));
        System.out.println(biSearch(array, 9));
    }

    public static int biSearch(int[] array, int a) {
        int left = 0;
        //注意:是长度减一
        int right = array.length - 1;

        int result = -1;
        while (left <= right) {
            //取中间位置
            int middle = (left + right) / 2;
            System.out.println("判断位置下标:" + middle);

            if (a == array[middle]) {
                result = middle;

                break;
            } else if (a < array[middle]) {
                //向左查找
                right = middle - 1;
            } else {
                //向右查找
                left = middle + 1;
            }
        }

        return result;
    }

}
相关推荐
XY_墨莲伊20 小时前
【实战项目】基于B/S结构Flask+Folium技术的出租车轨迹可视化分析系统(文末含完整源代码)
开发语言·后端·python·算法·机器学习·flask
爱吃桃子的ICer20 小时前
m1_pcie
数据结构
小雅痞20 小时前
[Java][Leetcode simple] 1. 两数之和
java·算法·leetcode
somi720 小时前
ARM-驱动-09-LCD FrameBuffer
arm开发·驱动开发·算法·自用
乐迪信息20 小时前
乐迪信息:智慧港口AI防爆摄像机实现船舶违规靠岸自动抓拍
大数据·人工智能·算法·安全·目标跟踪
winxp-pic21 小时前
图片校正软件 操作说明及算法介绍
算法
wayz1121 小时前
Day 6 编程实战:决策树与过拟合分析
算法·决策树·机器学习
ฅ ฅBonnie21 小时前
vLLM 推理后端简介
人工智能·python·算法
贾斯汀玛尔斯21 小时前
每天学一个算法--堆排序(Heap Sort)
数据结构·算法
programhelp_21 小时前
ZipRecruiter CodeSignal OA 2026|最新真题分享 + 速通攻略
数据结构·经验分享·算法·面试