当前位置: 首页 > news >正文

Java二分查找+冒泡排序

二分查找在编程中是用来查找目标元素在有序数组中的位置,并返回目标元素的索引

先给定一个有序数组,在创建一个方法来进行二分

主要思想是:根据数组具有下标的特点来分别计算,最左边的索引,以及最右边的索引,在判断目标元素与中间元素的大小,如果目标元素小于中间元素,我们可以判断出,目标元素在中间元素的左边,我们此时更新左右索引,在计算出新的中间元素,在次进行判断,如果目标元素不在数组中就会出现left>right的情况,退出循环,并返回-1.

public class Test_11_22 {public static void main(String[] args) {//二分查找//创建一个有序数组int [] arr = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};//查找元素int index = binarySearch(arr, 19);System.out.println(index);}public static int binarySearch(int[] arr, int key) {//左边的索引int left = 0;//右边的索引int right = arr.length-1;while(left <= right){//计算中间索引int mid = (left + right)/2;if(arr[mid]<key){//如果key大于中间元素,则搜索右半部分left = mid+1;}else if(arr[mid]>key){//如果key小于中间元素,则搜索左半部分right = mid-1;}else{//如果找到了,则返回索引return mid;}}//如果没有找到,则返回-1return -1;}
}

2.冒泡排序(这里以升序为例讲解)

冒泡排序是把一个无序的数组按照 升序 或者降序 来进行排序 主要的思想是"双指针",通过比较前后元素的大小,如果满足判断条件就会交换元素的位置,第一次排序就会把最大的元素放在最后面,通过这样的方法在进行判断,一直到完成为止,

import java.util.Arrays;public class Test_11_22_2 {public static void main(String[] args) {int[] arr = {5, 3, 8, 6, 2, 7, 1, 9, 4};//调用bubbleSort方法bubbleSort(arr);System.out.println(Arrays.toString(arr));}//冒泡排序public static void bubbleSort(int[] arr) {//在这个方法对数组的变动会影响到原数组,所以不需要返回值,在结果上直接打印就行了//在这里的循环次数是arr.length-1,因为最后一次冒泡排序是不需要的//因为每一次冒泡排序都会将最大的元素放到最后,所以不需要再进行一次冒泡排序for(int i = 0;i<arr.length;i++){for(int j = 0;j<arr.length-i-1;j++){if(arr[j]>arr[j+1]){//满足条件就交换前后两个元素的位置int temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}}
}

相关文章:

Java二分查找+冒泡排序

二分查找在编程中是用来查找目标元素在有序数组中的位置,并返回目标元素的索引 先给定一个有序数组,在创建一个方法来进行二分 主要思想是:根据数组具有下标的特点来分别计算,最左边的索引,以及最右边的索引,在判断目标元素与中间元素的大小,如果目标元素小于中间元素,我们可…...

(三)手势识别——动作识别应用【代码+数据集+python环境(免安装)+GUI系统】

&#xff08;三&#xff09;手势识别——动作识别应用【代码数据集python环境&#xff08;免安装&#xff09;GUI系统】 &#xff08;三&#xff09;手势识别——动作识别【代码数据集python环境GUI系统】 背景意义 随着互联网的普及和机器学习技术的进一步发展&#xff0c;手…...

大数据实战——MapReduce案例实践

&#x1f31f;欢迎来到 我的博客 —— 探索技术的无限可能&#xff01; &#x1f31f;博客的简介&#xff08;文章目录&#xff09; 大数据实战——MapReduce案例实践 一&#xff0e;过程分析&#xff08;截图&#xff09;1. 确定Hadoop处于启动状态2. 在/usr/local/filecotent…...

OpenCV基础(3)

1.图像直方图 1.1.像素统计 计算图像均值&#xff1a; Scalar cv::mean(InputArray src,InputArray masknoArray()); src&#xff1a;输入图像mask&#xff1a;掩膜层过滤 返回值是对输入图像通道数计算均值后的Scalar对象 计算图像均值与方差&#xff1a; void cv::meanSt…...

大语言模型---RewardBench 介绍;RewardBench 的主要功能;适用场景

文章目录 1. RewardBench 介绍2. RewardBench 的主要功能3. 适用场景 1. RewardBench 介绍 RewardBench: Evaluating Reward Models是一个专门用于评估 Reward Models&#xff08;奖励模型&#xff09; 的公开平台&#xff0c;旨在衡量模型在多种任务上的性能&#xff0c;包括…...

泷羽sec-linux

基础之linux 声明&#xff01; 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团…...

栈、队列、链表

一、栈 1. 定义 栈是一种线性数据结构&#xff0c;遵循后进先出&#xff08;LIFO, Last In First Out&#xff09;的原则。这意味着最后被添加到栈中的元素将会是最先被移除的元素。 2. 基本操作 Push&#xff1a;将一个元素添加到栈顶。Pop&#xff1a;移除并返回栈顶的元…...

【maven】配置下载私有仓库的快照版本

1、setting.xml配置 <settings xmlns"http://maven.apache.org/SETTINGS/1.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/SETTINGS/1.0.0https://maven.apache.org/xsd/settings-1.0.0.…...

LabVIEW引用类型转换问题

一、问题描述 在LabVIEW中&#xff0c;refnum&#xff08;引用编号&#xff09;用于引用各种资源&#xff0c;如文件、队列、控件等。这些引用是与具体类型相关的&#xff0c;通常情况下&#xff0c;LabVIEW会根据引用的类型自动进行处理。然而&#xff0c;当不同类型的引用需…...

GUI智能代理:用AI代理玩米哈游游戏《崩坏》

项目名称:The Dawn of GUI Agent研究对象:Claude 3.5 Computer Use特点:首个公测版GUI智能代理系统 技术创新 首创性:这是首个提供公测版图形界面控制功能的前沿AI模型。交互方式:实现了从自然语言到桌面操作的端到端控制,用户可以通过简单的自然语言指令完成复杂的桌面…...

系统思考—环路图的好处

每次内部学习&#xff0c;我们都会用系统环路图拆解那些动态性复杂的议题。这不仅仅是我们教学的工具&#xff0c;更是我们在实践中不断应用和打磨的利器。 我常在课程中和大家分享&#xff0c;什么原因要持续使用系统环路图&#xff1f; &#x1f3af; 1. 落地全局思维 环路图…...

torch.set_printoptions

torch.set_printoptions 设置pytorch打印张量时的选项&#xff0c;比如限制打印的元素数量、设置精度等。在打印大张量或者需要更精确控制输出格式时非常有用。 torch.set_printoptions(precisionNone, thresholdNone, edgeitemsNone, linewidthNone, profileNone, sci_modeN…...

Nexus搭建go私有仓库,加速下载go依赖包

一、搭建go私库 本文我们梳理一下go依赖包的私库搭建以及使用。 它只分为proxy和group两种仓库&#xff0c;这一点和maven仓库有所不同。 1、创建Blob Stores 为了区分不同的私库依赖包&#xff0c;存储的位置分隔开。 2、新建go proxy官网 Remote storage&#xff1a;htt…...

Qt6 Android设置文件读写权限设置

一.概述 1.在Qt中设置Android应用程序的文件读写权限,你需要在Android的Manifest文件中声明所需的权限。对于文件读写,通常需要声明以下权限: android.permission.READ_EXTERNAL_STORAGE:允许应用程序从外部存储读取数据。 android.permission.WRITE_EXTERNAL_STORAGE:允…...

TCP快速重传机制为啥出现重复ACK?

TCP快速重传机制为啥出现重复ACK 简单来说&#xff0c;丢失数据包后发送方至少发了三个请求&#xff0c;每个请求返回接收方下一次期待的序列号ACK&#xff0c;也就是丢失数据包之前的一个正常请求的确认ACK值 在 TCP&#xff08;Transmission Control Protocol&#xff0c;传…...

SSM--SpringMVC复习(二)

请求 URL匹配&#xff1a; RequestMapping RequestMapping 负责将请求映射到对应的控制器方法上。 RequestMapping 注解可用于类或方法上。用于类上&#xff0c;表示类中的所有响应请求的方法都以该地址作为父路径。 在整个 Web 项目中&#xff0c;RequestMapping 映射的请求…...

C语言蓝桥杯组题目

系列文章目录 文章目录 系列文章目录前言题目第一题.1, 2, 3, 4 能组成多少个互不相同且无重复数字的三位数&#xff1f;都是多少&#xff1f;思路 第二题: 一个整数&#xff0c;它加上100后是一个完全平方数&#xff0c;再加上168又是一个完全平方数&#xff0c;请问该数是多少…...

【解决】Unity TMPro字体中文显示错误/不全问题

问题描述&#xff1a;字体变成方块 原因&#xff1a;字体资源所承载的长度有限 1.找一个中文字体放入Assets中 2.选中字体创建为TMPro 字体资源 3.选中创建好的字体资源&#xff08;蓝色的大F&#xff09; 在右边的属性中找到Atlas Width h和 Atlas Heigth,修改的大一点&…...

【Threejs进阶教程-着色器篇】9.顶点着色器入门

【Threejs进阶教程-着色器篇】9.顶点着色器入门 本系列教程第一篇地址&#xff0c;建议按顺序学习认识顶点着色器varying介绍顶点着色器与片元着色器分别的作用Threejs在Shader中的内置变量各种矩阵gl_Position 尝试使用顶点着色器增加分段数增强效果 制作平面鼓包效果鼓包效果…...

质量留住用户:如何通过测试自动化提供更高质量的用户体验

在当今竞争异常激烈的市场中&#xff0c;用户手头有无数种选择&#xff0c;但有一条真理至关重要&#xff1a; 质量留住用户。 产品的质量&#xff0c;尤其是用户体验 (UX)&#xff0c;直接决定了客户是留在您的品牌还是转而选择竞争对手。随着业务的发展&#xff0c;出色的用户…...

医学影像与卫星图的救星?深入聊聊JPEG-LS算法在边缘计算设备上的应用优势

JPEG-LS算法&#xff1a;边缘计算时代的医学影像与卫星图像压缩利器 当一台CT扫描仪每秒产生数百张16位深度的医学影像&#xff0c;或一颗遥感卫星每天传回数TB的高清地表数据时&#xff0c;传统的图像压缩方案往往面临两难选择——要么牺牲宝贵的诊断细节&#xff0c;要么耗尽…...

全向轮底盘运动控制:嵌入式PID与逆运动学实现

1. 全向轮底盘控制库&#xff08;omni_wheel&#xff09;技术解析与工程实践1.1 项目背景与工程定位omni_wheel是为B团队自主移动机器人开发的底层运动控制模块&#xff0c;最初版本发布于2018年7月10日。从其原始README描述“PIDかけて一方向に進むだけのプログラムでござんす…...

售前客户需求深度挖掘:从表面诉求到核心痛点的五步法

# 003、客户需求深度挖掘&#xff1a;从表面诉求到核心痛点的五步法---上周调一个嵌入式项目&#xff0c;客户说“设备偶尔会死机&#xff0c;重启就好”。我们查了三天的日志&#xff0c;发现是内存泄漏。但真正的问题是什么&#xff1f;是代码质量&#xff1f;不完全是。最后…...

百川2-13B-4bits量化版精度测试:OpenClaw自动化任务准确率对比

百川2-13B-4bits量化版精度测试&#xff1a;OpenClaw自动化任务准确率对比 1. 测试背景与实验设计 上周在部署OpenClaw自动化工作流时&#xff0c;我遇到了一个现实问题&#xff1a;本地显卡只有12GB显存&#xff0c;跑不动原版13B模型。于是尝试了百川2-13B的4bits量化版本&…...

多层PCB结构与设计核心技术解析

多层PCB内部结构解析与设计指南1. 多层PCB技术概述1.1 多层PCB的基本概念现代电子设备对电路板的要求越来越高&#xff0c;多层PCB已成为复杂电子系统的标准配置。与单层或双层PCB相比&#xff0c;多层PCB通过在绝缘基材上叠加多个导电层&#xff0c;实现了更高的布线密度和更优…...

FanControl风扇控制软件:从噪音困扰到静音享受的完整指南

FanControl风扇控制软件&#xff1a;从噪音困扰到静音享受的完整指南 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending…...

PyTorch实战(38)——深度学习模型可解释性

PyTorch实战&#xff08;38&#xff09;——深度学习模型可解释性0. 前言1. PyTorch 模型可解释性2. 训练手写数字分类器3. 可视化模型卷积核4. 可视化特征图小结系列链接0. 前言 在本专栏中&#xff0c;我们已经构建了多种深度学习模型来完成不同任务&#xff0c;包括手写数字…...

简述双亲委派机制以及其优点

面试 概念&#xff1a;加载类的时候先交给自己的父类加载器执行&#xff0c;直到顶层的启动类加载器&#xff0c;如果父加载器能够完成加载&#xff0c;则交给父类加载器&#xff0c;否则自己尝试加载。 优点&#xff1a;保证类的加载的安全性&#xff0c;避免类的重复加载。...

Potree点云格式技术选型与实战指南:从需求到落地的完整路径

Potree点云格式技术选型与实战指南&#xff1a;从需求到落地的完整路径 【免费下载链接】potree WebGL point cloud viewer for large datasets 项目地址: https://gitcode.com/gh_mirrors/po/potree 在三维数据可视化领域&#xff0c;点云格式的选择直接影响项目的加载…...

Vue 2 中文文档:跨越语言鸿沟的技术民主化之旅

Vue 2 中文文档&#xff1a;跨越语言鸿沟的技术民主化之旅 【免费下载链接】v2.cn.vuejs.org &#x1f1e8;&#x1f1f3; Chinese translation for v2.vuejs.org 项目地址: https://gitcode.com/gh_mirrors/v2c/v2.cn.vuejs.org 你是否曾因语言障碍而错失了优秀技术框架…...