17-二分查找

*

import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class BinarySearch {
/*
    二分查找原理:
        顾名思义,就是在一个数组中查找一个特定的值
        二分查找可以在每次查找后,减少一半的查找量

        但是二分查找有个前提就是数组必须是先排序好的。
 */

    public static void main(String[] args) {
        // 随机生成(1-100)的指定长度的数组
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入指定的数组长度:");
        int[] arr = randomArr(scanner.nextInt());
        System.out.println("源数组: arr = " + Arrays.toString(arr));

        System.out.print("请输入要查找的元素:");
        int key = scanner.nextInt();
        int index = binarySearch(arr, key);
        if (index != -1) {
            System.out.println(key + "值在数组中的索引为:" + index);
        }
        else {
            System.out.println("数组中不存在" + key + "元素!");
        }
    }

    private static int binarySearch(int[] arr, int key) {
        // 定义小索引min,和大索引max
        int min = 0;
        int max = arr.length - 1;
        // 循环查找
        while (min  arr[middle]) {
                min = middle + 1;
            }else {
                return middle;
            }
        }
        return -1;
    }

    private static int[] randomArr(int length) {
        Random random = new Random();
        System.out.print("请输入数组的长度:");
        int[] arr = new int[length];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = random.nextInt(101) + 1;
        }
        Arrays.sort(arr);
        return arr;
    }
}

Original: https://www.cnblogs.com/OnlyOnYourself-lzw/p/16567734.html
Author: OnlyOnYourself-Lzw
Title: 17-二分查找

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/581575/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Git 代码提交和下载

    1、新建一个目录,存放下载下来的项目; 2、进入刚刚新建的文件夹,点击鼠标右键,选择”Git Bash Here” 3、进行基础配置,作为 Git 的基础配…

    Linux 2023年6月13日
    0110
  • Redis源码系列(一)

    Redis源码系列——内存管理 函数原型 src/zmalloc.h 函数指针与 void*指针的使用,提供了一个泛型的机制 /*stringfication*/ #define …

    Linux 2023年6月8日
    092
  • LyScript 从文本中读写ShellCode

    LyScript 插件通过配合内存读写,可实现对特定位置的ShellCode代码的导出,或者将一段存储在文本中的ShellCode代码插入到程序堆中,此功能可用于快速将自己编写的S…

    Linux 2023年5月28日
    090
  • SSH_远程终端

    SSH 远程服务 目的 Windwos 和 Linux 的终端控制系统or传送传送文件, 当然 Linux和Linux 以及 Windwos 和 Windwos 之间的通信都是OK…

    Linux 2023年6月7日
    083
  • 复古冰雪传奇H5游戏详细图文架设教程

    前言 想体验复古传奇的热血PK吗?想体验满级VIP的尊贵吗?想体验一刀99999的爽快吗?各种极品炫酷时装、坐骑、翅膀、宠物通通给你,就在复古冰雪传奇H5! 本文讲解冰雪传奇架设教…

    Linux 2023年6月7日
    0100
  • rm命令弱爆了!

    大家好,我是良许。 创建、删除和修改文件是用户在 Linux 系统中执行的非常常见操作。大家都知道,在 Linux 系统里使用 rm 命令删除单个文件时,几乎一瞬间就完成了。但是如…

    Linux 2023年6月14日
    092
  • 自动化集成:Jenkins管理工具详解

    前言:该系列文章,围绕持续集成:Jenkins+Docker+K8S相关组件,实现自动化管理源码编译、打包、镜像构建、部署等操作; 本篇文章主要描述Jenkins基础用法。 一、J…

    Linux 2023年5月27日
    0102
  • 标签泄露 Label leaking

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    086
  • python 练习题:请利用Python内置的hex()函数把一个整数转换成十六进制表示的字符串

    python;gutter:true;-*- coding: utf-8 -*-请利用Python内置的hex()函数把一个整数转换成十六进制表示的字符串n1 = 255n2 = …

    Linux 2023年6月8日
    083
  • Redis连接出现Error: Connection reset by peer的问题是由于使用Redis的安全模式

    现在网上一查出现安全模式的连接,基本都是要关闭服务端的操作,其实这种方式是不正确的,最有效的解决方式是使用stunnel进行安全模式的连接。 我碰到的问题是微软云(其实我不想用!)…

    Linux 2023年5月28日
    092
  • Linux驱动编程1——内核编译

    1.安装必要的内核开发包,包括gcc、make、libncurses-dev。 $ apt-get install gcc make libncurses-dev 2.$ make…

    Linux 2023年6月8日
    083
  • Redis采用不同内存分配器碎片率对比

    我们知道Redis并没有自己实现内存池,没有在标准的系统内存分配器上再加上自己的东西。所以系统内存分配器的性能及碎片率会对Redis造成一些性能上的影响。在Redis的 zmall…

    Linux 2023年5月28日
    080
  • 多级缓存-redis缓存预热

    冷启动:服务刚刚启动时,Redis中并没有缓存,如果所有商品数据都在第一次查询时添加缓存,可能会给数据库带来较大压力。 缓存预热:在实际开发中,我们可以利用大数据统计用户访问的热点…

    Linux 2023年5月28日
    079
  • 【论文笔记】(模型压缩)Do Deep Nets Really Need to be Deep?

    摘要 作者通过模型压缩(model compression)使浅层的网络学习与深层网络相同的函数,以达到深层网络的准确率(accuracy)。当与深浅模型的参数量相同时,浅层模型可…

    Linux 2023年6月7日
    091
  • Linux专项之Apache

    1.&#x865A;&#x62DF;&#x673A;&#x4E0A;&#x7F51; 1.安装软件(httpd) yum search ht…

    Linux 2023年5月27日
    086
  • Pytorch 中 tensor的维度拼接

    torch.stack() 和 torch.cat() 都可以按照指定的维度进行拼接,但是两者也有区别,torch.satck() 是 增加新的维度进行堆叠,即其维度拼接后会增加一…

    Linux 2023年6月7日
    097
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球