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系统】
(三)手势识别——动作识别应用【代码数据集python环境(免安装)GUI系统】 (三)手势识别——动作识别【代码数据集python环境GUI系统】 背景意义 随着互联网的普及和机器学习技术的进一步发展,手…...
大数据实战——MapReduce案例实践
🌟欢迎来到 我的博客 —— 探索技术的无限可能! 🌟博客的简介(文章目录) 大数据实战——MapReduce案例实践 一.过程分析(截图)1. 确定Hadoop处于启动状态2. 在/usr/local/filecotent…...
OpenCV基础(3)
1.图像直方图 1.1.像素统计 计算图像均值: Scalar cv::mean(InputArray src,InputArray masknoArray()); src:输入图像mask:掩膜层过滤 返回值是对输入图像通道数计算均值后的Scalar对象 计算图像均值与方差: void cv::meanSt…...
大语言模型---RewardBench 介绍;RewardBench 的主要功能;适用场景
文章目录 1. RewardBench 介绍2. RewardBench 的主要功能3. 适用场景 1. RewardBench 介绍 RewardBench: Evaluating Reward Models是一个专门用于评估 Reward Models(奖励模型) 的公开平台,旨在衡量模型在多种任务上的性能,包括…...
泷羽sec-linux
基础之linux 声明! 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团…...
栈、队列、链表
一、栈 1. 定义 栈是一种线性数据结构,遵循后进先出(LIFO, Last In First Out)的原则。这意味着最后被添加到栈中的元素将会是最先被移除的元素。 2. 基本操作 Push:将一个元素添加到栈顶。Pop:移除并返回栈顶的元…...
【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中,refnum(引用编号)用于引用各种资源,如文件、队列、控件等。这些引用是与具体类型相关的,通常情况下,LabVIEW会根据引用的类型自动进行处理。然而,当不同类型的引用需…...
GUI智能代理:用AI代理玩米哈游游戏《崩坏》
项目名称:The Dawn of GUI Agent研究对象:Claude 3.5 Computer Use特点:首个公测版GUI智能代理系统 技术创新 首创性:这是首个提供公测版图形界面控制功能的前沿AI模型。交互方式:实现了从自然语言到桌面操作的端到端控制,用户可以通过简单的自然语言指令完成复杂的桌面…...
系统思考—环路图的好处
每次内部学习,我们都会用系统环路图拆解那些动态性复杂的议题。这不仅仅是我们教学的工具,更是我们在实践中不断应用和打磨的利器。 我常在课程中和大家分享,什么原因要持续使用系统环路图? 🎯 1. 落地全局思维 环路图…...
torch.set_printoptions
torch.set_printoptions 设置pytorch打印张量时的选项,比如限制打印的元素数量、设置精度等。在打印大张量或者需要更精确控制输出格式时非常有用。 torch.set_printoptions(precisionNone, thresholdNone, edgeitemsNone, linewidthNone, profileNone, sci_modeN…...
Nexus搭建go私有仓库,加速下载go依赖包
一、搭建go私库 本文我们梳理一下go依赖包的私库搭建以及使用。 它只分为proxy和group两种仓库,这一点和maven仓库有所不同。 1、创建Blob Stores 为了区分不同的私库依赖包,存储的位置分隔开。 2、新建go proxy官网 Remote storage:htt…...
Qt6 Android设置文件读写权限设置
一.概述 1.在Qt中设置Android应用程序的文件读写权限,你需要在Android的Manifest文件中声明所需的权限。对于文件读写,通常需要声明以下权限: android.permission.READ_EXTERNAL_STORAGE:允许应用程序从外部存储读取数据。 android.permission.WRITE_EXTERNAL_STORAGE:允…...
TCP快速重传机制为啥出现重复ACK?
TCP快速重传机制为啥出现重复ACK 简单来说,丢失数据包后发送方至少发了三个请求,每个请求返回接收方下一次期待的序列号ACK,也就是丢失数据包之前的一个正常请求的确认ACK值 在 TCP(Transmission Control Protocol,传…...
SSM--SpringMVC复习(二)
请求 URL匹配: RequestMapping RequestMapping 负责将请求映射到对应的控制器方法上。 RequestMapping 注解可用于类或方法上。用于类上,表示类中的所有响应请求的方法都以该地址作为父路径。 在整个 Web 项目中,RequestMapping 映射的请求…...
C语言蓝桥杯组题目
系列文章目录 文章目录 系列文章目录前言题目第一题.1, 2, 3, 4 能组成多少个互不相同且无重复数字的三位数?都是多少?思路 第二题: 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少…...
【解决】Unity TMPro字体中文显示错误/不全问题
问题描述:字体变成方块 原因:字体资源所承载的长度有限 1.找一个中文字体放入Assets中 2.选中字体创建为TMPro 字体资源 3.选中创建好的字体资源(蓝色的大F) 在右边的属性中找到Atlas Width h和 Atlas Heigth,修改的大一点&…...
【Threejs进阶教程-着色器篇】9.顶点着色器入门
【Threejs进阶教程-着色器篇】9.顶点着色器入门 本系列教程第一篇地址,建议按顺序学习认识顶点着色器varying介绍顶点着色器与片元着色器分别的作用Threejs在Shader中的内置变量各种矩阵gl_Position 尝试使用顶点着色器增加分段数增强效果 制作平面鼓包效果鼓包效果…...
质量留住用户:如何通过测试自动化提供更高质量的用户体验
在当今竞争异常激烈的市场中,用户手头有无数种选择,但有一条真理至关重要: 质量留住用户。 产品的质量,尤其是用户体验 (UX),直接决定了客户是留在您的品牌还是转而选择竞争对手。随着业务的发展,出色的用户…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
Rapidio门铃消息FIFO溢出机制
关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系,以下是深入解析: 门铃FIFO溢出的本质 在RapidIO系统中,门铃消息FIFO是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。…...
C++.OpenGL (20/64)混合(Blending)
混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...
永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器
一、原理介绍 传统滑模观测器采用如下结构: 传统SMO中LPF会带来相位延迟和幅值衰减,并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF),可以去除高次谐波,并且不用相位补偿就可以获得一个误差较小的转子位…...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...
Mysql故障排插与环境优化
前置知识点 最上层是一些客户端和连接服务,包含本 sock 通信和大多数jiyukehuduan/服务端工具实现的TCP/IP通信。主要完成一些简介处理、授权认证、及相关的安全方案等。在该层上引入了线程池的概念,为通过安全认证接入的客户端提供线程。同样在该层上可…...
