首页 > 其他分享 >冒泡排序法的写法

冒泡排序法的写法

时间:2024-02-02 10:34:39浏览次数:18  
标签:arr 37 冒泡排序 一重 循环 数组 92 写法

冒泡排序法的代码如下:

public class MyTest {
    public static void main(String[] args) throws Exception{
        //使用冒泡排序法把数组按照升序排列
        int[] arr = new int[]{92,37,46,8,2};
        int len = arr.length;
        for(int i=0;i<len-1;i++) {//循环数组长度减1次
            for(int j=0;j<len-i-1;j++) {//循环数组长度减第几次一重循环
                if(arr[j]>arr[j+1]) {
                    int temp = arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
            System.out.println(Arrays.toString(arr));
        }
    }
}

如果靠死记硬背是记不住以上代码的,可以从理解的角度来记忆,以下是理解方法。

冒泡排序法需要两重循环。
一重循环循环了数组大小减1次。
二重循环循环了数组大小减第几次一重循环。

数组原始样子是这样的:92,37,46,8,2,循环时对比相邻的两个数,如果前者大于后者,就将两个数交换位置。

一重循环第一次,二重循环需要循环四次,数组变成这样:37,46,8,2,92
一重循环第二次,二重循环需要循环三次,数组变成这样:37,8,2,46,92
一重循环第三次,二重循环需要循环两次,数组变成这样:8,2,37,46,92
一重循环第四次,二重循环需要循环一次,数组变成这样:2,8,37,46,92

通过实际循环操作,可以看出,一重循环了4次,也就是数组大小减1,二重循环每次循环的次数是数组大小减去第几次的一重循环。

 

标签:arr,37,冒泡排序,一重,循环,数组,92,写法
From: https://www.cnblogs.com/qq2083587182/p/18002674

相关文章

  • 后端写法总结
    一、类型转换之间的工具类packagecom.hengan.citicPlatGunNew.utils;importorg.apache.commons.compress.utils.Lists;importorg.springframework.beans.BeanUtils;importorg.springframework.util.CollectionUtils;importjava.util.Collection;importjava.util.Li......
  • vue 前端写法总结
    一、图片 1、<divclass="loginDiv":style="'background-image:url('+Background+');'"> 2、 <img:src="Logo"class="img-logo"><script><!--引入样式-->import'@/assets/styl......
  • 确认删除的写法有没有问题?
    这种代码写法有没有问题?this.$confirm(`是否确认删除名称为"${row.deptName}"的数据项?`).then(()=>{returndeleteDept({deptId:row.id});}).then(()=>{this.getList();this.$message.success('删除成......
  • C++实现直接插入排序、冒泡排序、快速排序、选择排序(含调试程序)
    #include<iostream>#include<fstream>#include<string>#include<vector>#include<algorithm>usingnamespace::std;classSolution{public: //直接插入排序 voidinsertsort(vector<int>&num){ for(inti=1;i<num......
  • python中get请求传参方式的写法
    get请求分为两大类:无参数和有参数1.无参数2.有参数2.1参数较少2.2参数较多-字典形式2.3参数较多-列表+元祖形式......
  • 冒泡排序(2)
    #include<iostream>usingnamespacestd;structka{ stringname; intage; stringxin;};intmain(){ kaa[5]; kat; for(inti=0;i<5;i++){ cin>>a[i].name>>a[i].age>>a[i].xin; } for(inti=0;i<5;i++){for(int......
  • Qt QtConcurrent::run()函数的两种写法
    第一种,使用lambda表达式1QFuture<void>future=QtConcurrent::run([=](){2//Codeinthisblockwillruninanotherthread3});4...第二种,使用成员函数调用QByteArray的成员函数split()1//call'QList<QByteArray>QByteArray::split(charsep)c......
  • java冒泡排序的三种实现方法
    第一种通过简单的比较相邻的元素,如果他们的顺序是错误的,则交换它们的位置。重复这个步骤,直到没有更多要交换的元素为止。j变量代表未排序数组范围的右边界,j以后的已经排序publicstaticvoidbubble(int[]nums,intj){if(j==0){return;}......
  • vue中动态添加style样式的几种写法总结
    项目中可能会需要动态添加style行内样式,但是在长期维护的项目里面,尽量要避免使用。注意:1、凡是有-的style属性名都要变成驼峰式,比如font-size要变成fontSize。2、除了绑定值,其他的属性名的值要用引号括起来,比如backgroundColor:'#00a2ff'而不是backgroundColor:#00a2ff。......
  • Uni-app页面路由的五种写法
    uni.navigateTo(OBJECT)uni.redirectTo(OBJECT)uni.reLaunch(OBJECT)uni.switchTab(OBJECT)uni.navigateBack(OBJECT) 概要代码展示在最后,可以在应用中感受这几种不同方法的不同页面路由的方式有很多,在项目中遇到不同的跳转需求,就需要使用不同的跳转方法,下面介绍一下不......