如何用二分法查找数组内容下标

如何用二分法查找数组内容下标,第1张

如何用二分法查找数组内容下标

  在面对大量数据时,二分法可高效查找数组数据(本文为一维数组)

package com.lanling.javase.array;

import java.util.Scanner;//导入java.util.Scanner包,做后续接受用户键盘数据之用


public class Array01 {
    public static void main(String[] args) {
        //定义数组数据,必须按从小到大的顺序

        int[] arr = {12, 34, 54, 64, 66, 75, 85, 523523};

        //代码实现查找数据

        while (true) {    //while 语句可实现用户的重复输入

            //接收用户数据
            Scanner s = new Scanner(System.in);
            System.out.print("请输入想要寻找的数:");
            int i = s.nextInt();

            //定义查找方法cahZhao,arr为数组,i为用户查找数据

            int index = chaZhao(arr, i);

            //三目运算符实现判断下标
            System.out.println(index == -1 ? "该元素不存在" : "下标为:" + index);
        }
    }

    
    public static int chaZhao(int[] arr,int dest){
        //开始下标

        int begin = 0;

        //结束下标

        int end = arr.length - 1;

        //实现二分法,
        while(begin <= end) {
            //中间元素下标

            int mid = (begin + end) / 2;

            if (arr[mid] == dest) {
                return mid;
            } else if (arr[mid] < dest) {
                //目标在元素右边
                //开始元素下标要重新赋值

                begin = mid + 1;
            } else {
                end = mid - 1;
            }
        }
        //当元素不存在时,返回-1

        return -1;
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5691400.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-17
下一篇2022-12-17

发表评论

登录后才能评论

评论列表(0条)

    保存