Java学习-冒泡排序

2023-11-01

冒泡排序:通俗的理解就是将一列无序的数字按照从大到小或者从小到大的顺序进行排序的一种简单的算法

在Java中一般是将数组使用冒泡排序的方法进行排序,大致原理是遍历数组元素,然后每两个之间进行比较,将较大值或者较小值按照自己想要的排序结果进行换位,进行多次比较之后即可达到预料的结果

package test_1;
    //{20,10,5,80,90,46,55}  对这个原始数组进行从大到小和从小到大的排序
public class test_4 {
        public static void main(String[] args) {
            int [] arr={20,10,5,80,90,46,55};//静态初始化数组
            //传参
        }

        //创建从大到小的排序方法
        public static void getMax(int [] arr_1){
            //外层for循环控制比较次数 比较次数比数组长度少一个即可 因为最后那一次就不需要比
/*
根据自己定义的for循环中的初始化变量去进行调整 如果初始化变量是0的话 那么比较次数就是数组长度减去一 如果初始化变量是1的话 那么比较次数就是小于数组长度 反正比较次数就是这个数组的最大索引值即可
*/
            for(int i=0;i<arr_1.length-1;i++){
                //内层for循环用于遍历数组中 并代入到if语句中进行两个相邻元素的比较
                for(int x =0;x<arr_1.length-1;x++){
                        if(arr_1[x]<arr_1[x+1]){
//如果左边的元素小于右边的元素就将两个元素进行换位
                            int temp=arr_1[x];//使用一个int类型的变量暂存较小值
                            arr_1[x]=arr_1[x+1];
//将右边的元素赋值给左边 这样两个元素就一样了 所以接下来就用到了暂存较小值的变量 将它赋值给右边
                            arr_1[x+1]=temp;
                                    }
                            }
                    }
           //打印输出结果
        System.out.print("[");
         for(int i=0;i<arr_1.length;i++){
                if(i==arr_1.length-1){
                    System.out.print(arr_1[i]);        
            }
                 else{
                        System.out.print(arr_1+",");
                    }
            }
        System.out.print("]");
        System.out.println();//空的输出语句 用于做一个换行的作用
    }

    //创建从小到大的排序方法 和上面类似 只是调换位置的过程有所改变
    public static void getMin(int [] arr_2){
            //外层for循环控制比较次数
            for(int i=0;i<arr_2.length-1;i++){
                //外层for循环进行数组遍历 将元素进行相邻之间的比较
                   for(int x =0;x<arr_2.length-1;x++){
                            //使用if语句进行比较
                        if(arr_2[x]>arr_2[x+1]){//如果左边的元素大于右边的元素
                            int temp=arr_2[x];
                            arr_2[x]=arr_2[x+1];
                            arr_2[x+1]=temp;
                                }
                        }
                }
        //打印输出结果
        System.out.print("[");
        for(int i=0;i<arr_2.length;i++){
               if(i==arr_2.length-1){
                        System.out.print(arr_2[i]);
                    } 
                else{
                        System.out.print(arr_2[i]+",");
                        }
                }
        System.out.print("]");
        }
}

冒泡排序:相邻的两个元素进行比较,然后创建一个变量存储一个需要被换掉的元素。然后把较大或者较小值放到前面来,这样两个元素就都一样了,就与题目不符合了。所以就用到了我们的用于存储需要被换掉的元素的变量了。我们用它将被换掉的元素重新赋值出来

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java学习-冒泡排序 的相关文章

随机推荐

  • 目标检测入门——01目标检测概念及数据集

    目标检测入门 01目标检测概念及数据集 1 目标检测 1 1目标检测是什么 在入门阶段 大家经常会混淆分类任务和检测任务 分类任务是要明确图中是什么 属于哪一类 比如是猫还是狗 检测任务是要明确图中有什么 在什么位置 需要用目标框框出来 是
  • Windows安装配置Tomcat服务器教程 ——外网远程访问

    文章目录 前言 1 本地Tomcat网页搭建 1 1 Tomcat安装 1 2 配置环境变量 1 3 环境配置 1 4 Tomcat运行测试 1 5 Cpolar安装和注册 2 本地网页发布 2 1 Cpolar云端设置 2 2 Cpola
  • Neo4j ① <图论>图,节点,关系,属性<知识图谱和图库>图谱,图库,优势<基础>模块,应用场景,环境搭建,浏览器

    目录 第一部分 图 和 Neo4j 1 1 图论 1 1 1 图论起源 柯尼斯堡 Konigsberg 七桥问题 1 1 2 图 和 节点 1 1 3 节点关系表达 1 1 4 属性图模型规则 1 2 知识图谱和图库 1 2 1 知识图谱
  • python selenium对应版本报错及无法找到selenium

    1 点击画红线的地方红色小灯泡 下载 cmd pip show selenium查看是否安装selenium 成功的截图如下 2 此时再次运行 发现Message session not created This version of Ch
  • JWT 续签和多设备登录

    JWT java web token 由头部 载荷 签名三部分组成 其中头部和载荷仅使用了base64进行编码 所以载荷尽量不要传递一些敏感信息 比如 密码之类的 签名主要是用于验签 防止载荷被抓包篡改 这里直接切入主题 续签 jwt to
  • java 2进制常量_【二】Java变量与常量

    1 标识符 标识符 identifier 是指用来标识某个实体的一个符号 在不同的应用环境下有不同的含义 在计算机编程语言中 标识符是用户编程时使用的名字 用于给变量 常量 函数 语句块等命名 以建立起名称与使用之间的关系 标识符通常由字母
  • 解决Flutter旋转屏幕状态栏空缺的问题

    问题 最近要实现一个视频播放器 全屏播放时需要旋转屏幕 把案例拿出来试了一下 旋转屏幕后呈现的状态是这样 解决办法 打开项目下android app src main res values styles xml 添加
  • 对象相等判断&&值传递

    文章目录 对象相等判断 和 equals 的区别是什么 hashCode 与 equals 重要 对象的相等与指向他们的引用相等 两者有什么不同 值传递 对象相等判断 和 equals 的区别是什么 它的作用是判断两个对象的地址是不是相等
  • STP协议详解

    STP协议详解 文章目录 STP协议详解 前言 一 STP协议的运行原理 二 STP协议中ROOT RP DP的选举规则 三 端口状态disable listening learning forwarding blocking所代表的含义
  • vue3组合式api 父子组件数据同步v-model语法糖的用法

    V model 大多数情况是用在 表单数据上的 但它不止这一个作用 父子组件的数据同步 有一个 语法糖 v model 这个方法简化了语法 在elementplus中 都有很多地方使用 所以我们要理解清楚 父组件 使用 v model 向子
  • 【牛客SQL】SQL10 获取所有非manager的员工emp_no

    题目描述 描述 有一个员工表employees简况如下 有一个部门领导表dept manager简况如下 请你找出所有非部门领导的员工emp no 以上例子输出 示例1 输入 drop table if exists dept manage
  • 前端学习——jQuery基础

    一 引入jQuery的js文件 此处是下载好的jquery的js文件 也可以引入cdn 二 jQuery的入口函数 三 DOM对象和jQuery对象 div div 建一个盒子
  • react——state(状态机)

    h1 h1 h1 react state 状态 h1 p react把组件看成是一个状态机 state machines 通过与用户的交互 实现不同状态渲染UI 让用户界面和数据保持一致 p p react里 只需要更新组件的state 然
  • 【Qt教程】1.7 - Qt5带参数的信号、信号重载、带参数的槽函数、槽函数重载

    原理 与C 语法一致 信号 槽函数都可以发生重载 使其在名称不变的情况下 传递过程可以携带参数 示例说明 我们从一个最普通的信号槽工程中 来修改 对信号 槽进行重载 使信号 槽携带参数 1 普通信号 工程源码 widget h ifndef
  • rank、dense_rank、row_number函数的区别

    这四个 RANK DENSE RANK NTILE ROW NUMBER 函数 都是用来对数据库中的数据进行排名的 在他们的功能各有千秋 下面介绍一下这四个函数的功能和用法 首先创建一个Student表 CREATETABLEStudent
  • 树莓派安装opencv教程

    我使用的镜像版本为 Linux version 5 10 103 v7l dom buildbot arm linux gnueabihf gcc 8 Ubuntu Linaro 8 4 0 3ubuntu1 8 4 0 使用Python3
  • C++ 仿函数的分类

    一 概述 仿函数 functor 就是使一个类的使用看上去象一个函数 其实现就是类中实现一个operator 这个类就有了类似函数的行为 就是一个仿函数类了 有些功能的的代码 会在不同的成员函数中用到 想复用这些代码 1 公共的函数 可以
  • 普通人如何抓住AI这个风口

    随着科技的发展 人工智能 AI 已经成为当今社会的风口浪尖 越来越多的行业正在应用AI技术 新的职业和商业机会也随之出现 那么 作为普通人 我们应该如何抓住这个风口呢 来看看 AI硅基小助手 是如何解答的 1 学习AI相关技能 学习AI相关
  • Shiro和Spring Security的简单对比

    Shiro和Spring Security是Java中常用的两种安全认证框架 安全认证主要包括认证和授权鉴权两部分 认证指应用程序验证一个用户信息的过程 应用程序需要确认当前的用户是否是合法的用户 用户会向应用程序提供两部分数据 身份信息和
  • Java学习-冒泡排序

    冒泡排序 通俗的理解就是将一列无序的数字按照从大到小或者从小到大的顺序进行排序的一种简单的算法 在Java中一般是将数组使用冒泡排序的方法进行排序 大致原理是遍历数组元素 然后每两个之间进行比较 将较大值或者较小值按照自己想要的排序结果进行