首页 > 其他分享 >08 冒泡排序

08 冒泡排序

时间:2023-01-27 18:00:37浏览次数:39  
标签:int 08 length 冒泡排序 ++ flag 循环

冒泡排序

image

代码

package com.zhan.base04Array;

public class Test08 {

    public static void main(String[] args) {
        int[] a={1,5,3,8,6};
        sort(a);

    }

    /* 冒泡排序
    1.比较数组中相邻的两个因素的大小,如果不相等(看情况),则交换顺序
    2.每一次比较,都会产生 最大或者最小 的一个数字  (内循环)
    3.下一轮循环可以少一次排序
    4. 依次循环,直到结束
     */
    public static void sort(int[] a){

        boolean flag=false;   // 算法的优化

        for (int i = 0,k=a.length-1; i < a.length-1; i++,k--) {
            // 外循环决定每一次内循环后选出最大或者最小值的轮数  执行 a.length-1 次,下一次循环可少一次排序
            for (int j = 0; j <k ; j++) {   //内循环决定排序   每一次外循环后,内循环都会减少一次排序
                if (a[j]>a[j+1]){     // 升序
                    int temp;
                    temp=a[j];
                    a[j]=a[j+1];
                    a[j+1]=temp;
                    flag=true;
                    // 如果if语句没有被执行,那么flag==false,则说明原本的顺序就已经排好了,就可以跳出循环,节省资源
                }
            }
            if (flag==false)  break;
        }



        /*    狂神讲的 ,都一样,使得内循环每次排序的次数减1即可
                for (int i = 0; i < a.length-1; i++) {
            for (int j = 0; j < a.length-1-i; j++) {

            }
        }
         */


        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i]+" ");
        }
        System.out.println();
    }


}

标签:int,08,length,冒泡排序,++,flag,循环
From: https://www.cnblogs.com/zhanjianhai/p/17069120.html

相关文章

  • 08-从 objects 到 QuerySet
    调试特点如果B继承了A,那么在调试器中,只能看到B的直接属性或者方法,看不到它所继承的。先明白这一点Manager注意每一窗口下方的代码位置,方便快速定位代码。【1......
  • Windows 2008 + SQLServer 2008 双机群集
    SQLserver版本要求:标准版(2个节点),企业版(16个节点)安装前,先了解相关信息:​​SQLServer2008故障转移群集入门 ​​SQLServer2008 群集是基于Windows群集:​​Windows2......
  • CF908G 题解
    题意传送门给\(x\le10^{700}\),问\(1\)到\(x\)中每个数在各数位排序后得到的数的和。答案模\(10^9+7\)。题解学到一种新鲜的转化方式,来记一下。将\(x\)的位数......
  • Windows 2008 双机群集配置(for SQLServer)
    此处配置Windows2008群集,将用于SQLserver2008双机故障转移群集,此处SQLserver的群集基于Windows群集实现。Windows2008集群更容易实现了,只要规划好IP和磁盘分配,可一直......
  • Codeforces 708 A-E1题解
    A.Meximization这道题问给一些数,如何让前缀的mex之和最大,那么首先,我们要抬mex的话肯定是要把前面都铺垫完的,所以在i位置确定的时候,i+1自然是越大越好,可以证明i+1的位......
  • 刷刷刷 Day 23 | 108. 将有序数组转换为二叉搜索树
    108.将有序数组转换为二叉搜索树LeetCode题目要求给你一个整数数组nums,其中元素已经按升序排列,请你将其转换为一棵高度平衡二叉搜索树。高度平衡二叉树是一棵满......
  • SQL Server 2005-2008 ROW_NUMBER() 分页函数效率
    --测试数据量:2161852条declare@idatetimeset@i=GETDATE();--SQL2005-2008--开始WITHtempAS(SELECTid,title,body,ROW_NUMBER()OVER(ORDERBYid)AS'Row......
  • 洛谷 P1208混合牛奶 题解
    一道贪心算法不是很明显的题目,其实一般的递推也可以做。 大体思路:肯定优先购买单价最低的奶农的牛奶,那么就需要先根据牛奶单价进行排序,这里用结构体会更好一点。之后在......
  • P4281 [AHOI2008]紧急集合 / 聚会
    此题来到LCA较高等级运用。这道题需要自己花一些树玩玩。找到一些性质:三个点的lca一定至少有两个是一样的;更多证明集合点就是不相同的点;同时还要会求树上距离这里......
  • 小技巧,让VS2008打开VS2010的工程
    今天某童鞋想打开老师给的一个VS2010的工程,而其电脑上却没有装VS2010,只装了VS2008,我让其将工程发给我,我的机子也只装了VS2008,打开工程时提示如下:选择的文件是解决方案文......