当前位置 博文首页 > YHSevenWater的博客:Java二分查找算法

    YHSevenWater的博客:Java二分查找算法

    作者:[db:作者] 时间:2021-08-11 16:06

    二分法查找,数组需要为有序数组。

    下面将二分查找算法的思想简单用图展示一下(理解一下为本人粗糙的手工绘图)
    在这里插入图片描述

    package com.java.arraysdemo;
    import java.util.Scanner;
    //二分法查找,数组需要是有序的。
    public class BinarySearch {
        public static void main(String[] args) {
            int [] array = new int[]{-99,-56,-45,-12,12,22,33,56,94};
            boolean flag = true;
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入您需要寻找的数:");
            while(flag){
                int number = scanner.nextInt();    //需要寻找的数
                int first = 0;  //首索引的位置
                int last = array.length;    //尾索引的位置
    
                while(first <= last){
                    int middle = (first + last) / 2;    //定位middle的位置
                    if(array[middle] == number){
                        flag = false;
                        System.out.println("所找的数字索引位置为:数组的第"+(middle + 1)+"个位置");
                        break;
                    }else if(array[middle] < number){
                        first = middle + 1;
                    }else{
                        last = middle - 1;
                    }
                }
    
                if(flag == true){
                    System.out.println("未找到需要寻找的数!请重新输入:");
                }
            }
        }
    }
    

    在这里插入图片描述

    cs