【Java 排序】冒泡排序(升降序,Int类型,Double类型,多数组排序)(111)

思路:
用二重循环实现,外循环变量设为i,内循环变量设为j。假如有n个数需要进行排序,则外循环重复n-1次,内循环依次重复n-1,n-2,…,1次。每次进行比较的两个元素都是与内循环j有关的,它们可以分别用a[j]和a[j+1]标识,i的值依次为1,2,…,n-1,对于每一个i,j的值依次为0,1,2,…n-i 。

设数组长度为N:
1.比较相邻的前后二个数据,如果前面数据大于后面的数据,就将二个数据交换。
2.这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。
3.N=N-1,如果N不为0就重复前面二步,否则排序完成。

直接上代码:


import java.util.Arrays;/** 工具类:冒泡排序* */public class BubblSortUtils {/** 1.Int类型:冒泡排序(降序)**/public static void bubbleSortDesc(int[] arr) {int temp;  // 定义一个临时变量for (int i=0;i<arr.length;i++) {for (int j = 0; j < arr.length; j++) {if (arr[i] >= arr[j]) {temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}}}/** 2.Int类型:冒泡排序(升序)**/public static void bubbleSortAsc(int[] arr) {int temp;  // 定义一个临时变量for(int i=0;i<arr.length-1;i++){  // 冒泡趟数for(int j=0;j<arr.length-i-1;j++){if(arr[j+1]<arr[j]){temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}}   /** 3.Double类型:冒泡排序(降序)**/public static void bubbleSortDescDouble(Double[] arr) {Double temp;  // 定义一个临时变量for (int i=0;i<arr.length;i++) {for (int j = 0; j < arr.length; j++) {if (arr[i] >= arr[j]) {temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}}}/** 4.Double类型:冒泡排序(升序)**/public static void bubbleSortAscDouble(Double[] arr) {Double temp;  // 定义一个临时变量for(int i=0;i<arr.length-1;i++){  // 冒泡趟数for(int j=0;j<arr.length-i-1;j++){if(arr[j+1]<arr[j]){temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}}/** 5.Int类型:冒泡排序(升序):排序双数组;**/public static void bubbleSortAscMultiple(int[] arr,String[] arr2) {int temp;  // 定义一个临时变量String temp2;  // 定义一个临时变量for(int i=0;i<arr.length-1;i++){  // 冒泡趟数for(int j=0;j<arr.length-i-1;j++){if(arr[j+1]<arr[j]){temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;temp2 = arr2[j];arr2[j] = arr2[j+1];arr2[j+1] = temp2;}}}}/** 6.Int类型:冒泡排序(升序):排序三数组;* * 多个数组排序,可继续优化排序代码* 提供思路:比如:第一个入参传int类型数组进行排序,后面多个数组按照二维数组入参;**/public static void bubbleSortAscMultiple2(int[] arr,String[] arr2,String[] arr3) {int temp;  // 定义一个临时变量String temp2;  // 定义一个临时变量String temp3;  // 定义一个临时变量for(int i=0;i<arr.length-1;i++){  // 冒泡趟数for(int j=0;j<arr.length-i-1;j++){if(arr[j+1]<arr[j]){temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;temp2 = arr2[j];arr2[j] = arr2[j+1];arr2[j+1] = temp2;temp3 = arr3[j];arr3[j] = arr3[j+1];arr3[j+1] = temp3;}}}}/** 7.Int类型:冒泡排序(降序):排序双数组**/public static void bubbleSortDescMultiple(int[] arr,String[]arr2) {int temp;String temp2;for (int i=0;i<arr.length;i++) {for (int j = 0; j < arr.length; j++) {if (arr[i] >= arr[j]) {temp = arr[i];arr[i] = arr[j];arr[j] = temp;temp2 = arr2[i];arr2[i] = arr2[j];arr2[j] = temp2;}}}}/** 8.Doble类型:冒泡排序(降序):排序双数组**/public static void bubbleSortDescMultipleDouble(Double[] arr,String[]arr2) {Double temp;String temp2;for (int i=0;i<arr.length;i++) {for (int j = 0; j < arr.length; j++) {if (arr[i] >= arr[j]) {temp = arr[i];arr[i] = arr[j];arr[j] = temp;temp2 = arr2[i];arr2[i] = arr2[j];arr2[j] = temp2;}}}}public static void main(String[] args) {int arr[] = new int[]{9,3,13,12,12,-2,5,-11,100,423,5622,78900};bubbleSortDesc(arr);System.out.println("1.Int类型:冒泡排序(降序):"+Arrays.toString(arr));System.out.println("----------------------------");int arr2[] = new int[]{9,3,13,12,12,-2,5,-11,100,423,5622,78900};bubbleSortAsc(arr2);System.out.println("2.Int类型:冒泡排序(升序):"+Arrays.toString(arr2));System.out.println("----------------------------");Double arr3[] = new Double[]{9.1,3.1,13.1,9.2,9.0,0.0,-0.2,-0.1,-0.35,100.0,423.0,9.0,5622.0,78900.0};bubbleSortDescDouble(arr3);System.out.println("3.Double类型:冒泡排序(升序):"+Arrays.toString(arr3));System.out.println("----------------------------");Double arr4[] = new Double[]{9.1,3.1,13.1,9.2,9.0,0.0,-0.2,-0.1,-0.35,100.0,423.0,9.0,5622.0,78900.0};bubbleSortAscDouble(arr4);System.out.println("4.Double类型:冒泡排序(升序):"+Arrays.toString(arr4));System.out.println("----------------------------");int arr5[] = new int[]{9,3,13,12,12,5};String arrStr5[] = new String[]{"西安","北京","上海","武汉","深圳","成都"};bubbleSortAscMultiple(arr5,arrStr5);System.out.println("5.Int类型:冒泡排序(升序):排序双数组1:"+Arrays.toString(arr5));System.out.println("5.Int类型:冒泡排序(升序):排序双数组2:"+Arrays.toString(arrStr5));System.out.println("----------------------------");int arr6[] = new int[]{9,3,13,12,12,5};String arrStrArr1[] = new String[]{"西安","北京","上海","武汉","深圳","成都"};String arrStrArr2[] = new String[]{"西安2","北京2","上海2","武汉2","深圳2","成都2"};bubbleSortAscMultiple2(arr6,arrStrArr1,arrStrArr2);System.out.println("6.Int类型:冒泡排序(升序):排序三数组1:"+Arrays.toString(arr6));System.out.println("6.Int类型:冒泡排序(升序):排序三数组2:"+Arrays.toString(arrStrArr1));System.out.println("6.Int类型:冒泡排序(升序):排序三数组3:"+Arrays.toString(arrStrArr2));System.out.println("----------------------------");int arr7[] = new int[]{9,3,13,12,12,5};String arrStr7[] = new String[]{"西安","北京","上海","武汉","深圳","成都"};bubbleSortDescMultiple(arr7,arrStr7);System.out.println("7.Int类型:冒泡排序(降序):排序双数组1:"+Arrays.toString(arr7));System.out.println("7.Int类型:冒泡排序(降序):排序双数组2:"+Arrays.toString(arrStr7));System.out.println("----------------------------");Double arr8[] = new Double[]{9.1,3.1,13.1,9.2,9.0,0.0};String arrStr8[] = new String[]{"西安","北京","上海","武汉","深圳","成都"};bubbleSortDescMultipleDouble(arr8,arrStr8);System.out.println("8.Doble类型:冒泡排序(降序):排序双数组1:"+Arrays.toString(arr8));System.out.println("8.Doble类型:冒泡排序(降序):排序双数组2:"+Arrays.toString(arrStr8));}
}

测试输出:

1.Int类型:冒泡排序(降序)[78900, 5622, 423, 100, 13, 12, 12, 9, 5, 3, -2, -11]
----------------------------
2.Int类型:冒泡排序(升序)[-11, -2, 3, 5, 9, 12, 12, 13, 100, 423, 5622, 78900]
----------------------------
3.Double类型:冒泡排序(升序)[78900.0, 5622.0, 423.0, 100.0, 13.1, 9.2, 9.1, 9.0, 9.0, 3.1, 0.0, -0.1, -0.2, -0.35]
----------------------------
4.Double类型:冒泡排序(升序)[-0.35, -0.2, -0.1, 0.0, 3.1, 9.0, 9.0, 9.1, 9.2, 13.1, 100.0, 423.0, 5622.0, 78900.0]
----------------------------
5.Int类型:冒泡排序(升序):排序双数组1[3, 5, 9, 12, 12, 13]
5.Int类型:冒泡排序(升序):排序双数组2[北京, 成都, 西安, 武汉, 深圳, 上海]
----------------------------
6.Int类型:冒泡排序(升序):排序三数组1[3, 5, 9, 12, 12, 13]
6.Int类型:冒泡排序(升序):排序三数组2[北京, 成都, 西安, 武汉, 深圳, 上海]
6.Int类型:冒泡排序(升序):排序三数组3[北京2, 成都2, 西安2, 武汉2, 深圳2, 上海2]
----------------------------
7.Int类型:冒泡排序(降序):排序双数组1[13, 12, 12, 9, 5, 3]
7.Int类型:冒泡排序(降序):排序双数组2[上海, 深圳, 武汉, 西安, 成都, 北京]
----------------------------
8.Doble类型:冒泡排序(降序):排序双数组1[13.1, 9.2, 9.1, 9.0, 3.1, 0.0]
8.Doble类型:冒泡排序(降序):排序双数组2[上海, 武汉, 西安, 深圳, 北京, 成都]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/45901.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入理解分布式架构,构建高效可靠系统的关键

深入探讨分布式架构的核心概念、优势、挑战以及构建过程中的关键考虑因素。 引言什么是分布式架构&#xff1f;分布式架构的重要性 分布式系统的核心概念节点和通信数据分区与复制一致性与一致性模型负载均衡与容错性 常见的分布式架构模式客户端-服务器架构微服务架构事件驱动…

[国产MCU]-W801开发实例-GPIO输入与中断

GPIO输入与中断 文章目录 GPIO输入与中断1、硬件准备2、软件准备3、驱动实现4、驱动测试W801的GPIO支持软件配置中断,中断触发方式包含:上升沿触发、下降沿触发、高电平触发、低电平触发。本文在前面[ 国产MCU]-W801开发实例-按键与GPIO输入的基础上实现GPIO中断配置。 1、硬…

Android瀑布流

以下是一个简单的示例代码&#xff0c;演示如何在Android Studio中解析指定网页的图片URL&#xff0c;并展示在错乱瀑布流布局中&#xff1a; 1. 添加网络权限&#xff1a;在项目的AndroidManifest.xml文件中添加以下权限&#xff1a; <uses-permission android:name"…

Linux定时任务crontab

常用命令 crontab -e 进入定时脚本&#xff0c;编辑后保存即立即生效 crontab -l 查看用户定时脚本 tail -f /var/log/cron 查看执行日志 service crond status 查看定时器运行状态 service crond restart 重启定时器 定时任务不执行原因 定时任务设置的格式正确&#xff0c;手…

分布式 | 如何搭建 DBLE 的 JVM 指标监控系统

本篇文章采用 Docker 方式搭建 Grafana Prometheus 实现对 DBLE 的 JVM 相关指标的监控系统。 作者&#xff1a;文韵涵 爱可生 DBLE 团队开发成员&#xff0c;主要负责 DBLE 需求开发&#xff0c;故障排查和社区问题解答。 本文来源&#xff1a;原创投稿 爱可生开源社区出品&a…

亚马逊点击广告对于卖家有什么好处

亚马逊点击广告对卖家来说有许多好处&#xff0c;它们可以帮助卖家增加产品曝光、提高销售量&#xff0c;并改善他们在亚马逊平台上的竞争地位。以下是一些卖家可能从亚马逊点击广告中获益的好处&#xff1a; 1、增加产品曝光度&#xff1a;通过在关键搜索结果页面上投放广告&…

更新Ubuntu18.04上的CUDA和GCC

问题&#xff1a; 有一台服务器的GPU是1080&#xff0c;有八张卡&#xff0c;已经好久没有人用了。cuda版本是10.1,我现在拿来复现一些论文的模型&#xff0c;经常遇到版本依赖问题&#xff0c;报错Driver is too old。所以要更新一下驱动。遇到的主要问题是gcc版本也太低了&am…

MySQL8.0.26-Linux版安装

MySQL8.0.26-Linux版安装 1. 准备一台Linux服务器 云服务器或者虚拟机都可以; Linux的版本为 CentOS7; 2. 下载Linux版MySQL安装包 MySQL :: Download MySQL Community Server (Archived Versions) 3. 上传MySQL安装包 4. 创建目录,并解压 mkdir mysql ​ tar -xvf mysql-8…

Flink 数据集成服务在小红书的降本增效实践

摘要&#xff1a;本文整理自实时引擎研发工程师袁奎&#xff0c;在 Flink Forward Asia 2022 数据集成专场的分享。本篇内容主要分为四个部分&#xff1a; 小红书实时服务降本增效背景Flink 与在离线混部实践实践过程中遇到的问题及解决方案未来展望 点击查看原文视频 & 演…

Spring Clould 负载均衡 - Ribbon

视频地址&#xff1a;微服务&#xff08;SpringCloudRabbitMQDockerRedis搜索分布式&#xff09; Ribbon-负载均衡原理&#xff08;P14&#xff09; 具体实现时通过LoaBalanced注解实现&#xff0c;表示RestTemplate要被Ribbon拦截处理 orderservice调用user时候&#xff0c…

​亚商投资顾问 早餐FM/0817创新发展机器人产业措施

01/亚商投资顾问 早间导读 总理&#xff1a;要着力扩大国内需求&#xff0c;继续拓展扩消费、促投资政策空间&#xff0c;提振大宗消费新华社&#xff1a;抹黑打压改变不了中国市场吸引力北京市印发《促进机器人产业创新发展若干措施》 02/亚商投资顾问 新闻早餐 // 热点聚焦…

FPGA原理与结构——RAM IP核的使用与测试

目录 一、前言 二、RAM IP核定制 1、RAM IP核 step1 打开vivado工程&#xff0c;点击左侧栏中的IP Catalog step2 在搜索栏搜索RAM&#xff0c;找到Block Memory Generator IP核&#xff1a; 2、IP核定制 step3 Baisc界面定制 step4 端口定制 step5 Other Options st…

18 眼前一亮:带你玩转GUI自动化的测试报告

开源GUI测试框架的测试报告实现思路 需要自己去实现截图以及高亮显示操作元素的功能。实现的思路通常是&#xff1a; 利用 Selenium WebDriver 的 screenshot 函数在一些特定的时机&#xff08;比如&#xff0c;页面发生跳转时&#xff0c;在页面上操作某个控件时&#xff0c;…

Docker分布式仓库

Harbor 是一个用于存储和分发 Docker 镜像的企业级 Registry 服务器&#xff0c;由 vmware 开源&#xff0c;其通过添加一些企业必需的功能特性&#xff0c;例如安全、标识和管理等&#xff0c;扩展了开源 Docker Distribution。作为一个企业级私有 Registry 服务器&#xff0c…

八种架构演进

日升时奋斗&#xff0c;日落时自省 目录 1、单机架构 2、应用数据分离架构 3、应用服务集群架构 4、读写分离/主从分离架构 5、冷热分离架构 6、垂直分库架构 7、微服务架构 8、容器编排架构 9、小结 1、单机架构 特征&#xff1a;应用服务和数据库服务器公用一台服务…

【vim 学习系列文章 5 - cscope 过滤掉某些目录】

文章目录 cscope 过滤目录介绍 cscope 过滤目录介绍 第一步创建自己的cscope脚本~/.local/bin/cscope.sh&#xff0c;如下&#xff1a; function my_cscope() {CODE_PATHpwdecho "$CODE_PATH"echo "start cscope...."if [ ! -f "$CODE_PATH/cscope.…

图片速览 FlashAttention+Softmax的安全计算形式(暂记)

FlashAttention最基础的方案来自使用高速的share memory来加速Softmax操作&#xff0c;实现Softmax的tiling方案。&#xff08;Q,K,V之间的乘法可由gemm实现。&#xff09; 左侧为GPU各部分的访问速度比较 FlashAttention使用平铺来防止大型实体化&#x1d441; &#x1d44…

docker搭建es+kibana

docker搭建eskibana 0 安装docker 如果是mac或者windows&#xff0c;可以直接安装Docker Desktop更加便捷。 前提条件&#xff1a; Docker可以运行在Windows、Mac、CentOS、Ubuntu等操作系统上 Docker支持以下的CentOS版本&#xff1a; CentOS 7 (64-bit)CentOS 6.5 (64-bit…

最长子序列问题

[NOIP1999] 导弹拦截 SOL1&#xff1a; 记 f i f_i fi​ 表示第 i i i 项结尾的 LDS 长度。 f i max ⁡ j < i , a j ≥ a i f j 1 f_i \max_{j < i,a_j \ge a_i} f_j 1 fi​j<i,aj​≥ai​max​fj​1 朴素做是 O ( n 2 ) O(n^2) O(n2) 的。代码。 显然可以…

k8s集群监控方案--node-exporter+prometheus+grafana

目录 前置条件 一、下载yaml文件 二、部署yaml各个组件 2.1 node-exporter.yaml 2.2 Prometheus 2.3 grafana 2.4访问测试 三、grafana初始化 3.1加载数据源 3.2导入模板 四、helm方式部署 前置条件 安装好k8s集群&#xff08;几个节点都可以&#xff0c;本人为了方便实验k8s集…