zoukankan      html  css  js  c++  java
  • java数组中的冒泡排序

    冒泡排序算法
    1 每一次循环结束之后,都要找出最大的数据,放到参与比较的这堆数据的最右边。(冒出最大的那个气泡)
    2 核心:
        拿着左边的数字和右边的数字进行比对,当左边 > 右边的时候,交换位置。
     
     
    3 冒泡排序
        参与比较的数据 9 8 10 7 6 0 11
            第一次循环:
            8 9 10 7 6 0 11 (9和8进行比较:交换)
            8 9 10 7 6 0 11 (9和10进行比较:不交换)
            8 9 7 10 6 0 11 (10和7进行比较:交换)
            8 9 7 6 10 0 11 (10和6进行比较:交换)
            8 9 7 6 0 10 11 (10和0进行比较:交换)
            8 9 7 6 0 10 11 (10和11进行比较:不交换)
            最终冒泡的最大数据在右边:11
        
        参与比较的数据:8 9 7 6 0 10
            第二次循环:
            8 9 7 6 0 10(8和9进行比较,不交换)
            8 7 9 6 0 10(9和7进行比较,交换)
            8 7 6 9 0 10(9和6进行比较,交换)
            8 7 6 0 9 10(9和0进行比较,交换)
            8 7 6 0 9 10(9和10进行比较,不交换)
            
        参与比较的数据:8 7 6 0 9
            第三次循环:
            7 8 6 0 9(8和7进行比较,交换)
            7 6 8 0 9(8和6进行比较,交换)
            7 6 0 8 9(8和0进行比较,交换)
            7 6 0 8 9(8和9进行比较,不交换)
            
        参与比较的数据:7 6 0 8
            第四次循环:
            6 7 0 8(7和6进行比较,交换)
            6 0 7 8(7和0进行比较,交换)
            6 0 7 8(7和8进行比较,不交换)
     
     
        参与比较的数据:6 0 7
            第五次循环:
            0 6 7(6和0进行比较,交换)
            0 6 7(6和7进行比较,不交换)
            
        参与比较的数据:0 6
            第六次循环:
            0 6(0和6进行比较,不交换)
     
     
    冒泡排序代码:
    package com.javaSe.Arrays;
    /*
    冒泡排序算法
    1 每一次循环结束之后,都要找出最大的数据,放到参与比较的这堆数据的最右边。(冒出最大的那个气泡)
    2 核心:
        拿着左边的数字和右边的数字进行比对,当左边 > 右边的时候,交换位置。
    
    3 冒泡排序
        参与比较的数据 9 8 10 7 6 0 11
            第一次循环:
            8 9 10 7 6 0 11 (9和8进行比较:交换)
            8 9 10 7 6 0 11 (9和10进行比较:不交换)
            8 9 7 10 6 0 11 (10和7进行比较:交换)
            8 9 7 6 10 0 11 (10和6进行比较:交换)
            8 9 7 6 0 10 11 (10和0进行比较:交换)
            8 9 7 6 0 10 11 (10和11进行比较:不交换)
            最终冒泡的最大数据在右边:11
        
        参与比较的数据:8 9 7 6 0 10
            第二次循环:
            8 9 7 6 0 10(8和9进行比较,不交换)
            8 7 9 6 0 10(9和7进行比较,交换)
            8 7 6 9 0 10(9和6进行比较,交换)
            8 7 6 0 9 10(9和0进行比较,交换)
            8 7 6 0 9 10(9和10进行比较,不交换)
            
        参与比较的数据:8 7 6 0 9
            第三次循环:
            7 8 6 0 9(8和7进行比较,交换)
            7 6 8 0 9(8和6进行比较,交换)
            7 6 0 8 9(8和0进行比较,交换)
            7 6 0 8 9(8和9进行比较,不交换)
            
        参与比较的数据:7 6 0 8
            第四次循环:
            6 7 0 8(7和6进行比较,交换)
            6 0 7 8(7和0进行比较,交换)
            6 0 7 8(7和8进行比较,不交换)
    
        参与比较的数据:6 0 7
            第五次循环:
            0 6 7(6和0进行比较,交换)
            0 6 7(6和7进行比较,不交换)
            
        参与比较的数据:0 6
            第六次循环:
            0 6(0和6进行比较,不交换)
        
        
     */
    public class BubbleSort {
        public static void main(String[] args) {
            // int类型数组对象
            int[] arr = {9,8,10,7,6,0,11};
            // 7条数据,循环6次。一下的代码可以循环6次。
            // for (int j = 0; j < i.length - 1; j++) {
            //      System.out.println(j);
            // }
        
            // 7条数据,循环6次。一下的代码可以循环6次。(冒泡排序的外层循环采用这种方式)
            // int count = 0;
            for (int i = arr.length - 1; i > 0; i--) {
                for (int j = 0; j < i; j++) {
                    // count++;
                    if (arr[j] > arr[j + 1]){
                        // 交换位置
                        // i[k] 和 i[k+1] 交换
                        int temp;
                        temp = arr[j];
                        arr[j] = arr[j+1];
                        arr[j+1] = temp;
                    }
                }
            }
            
            // System.out.println("比较次数:" + count); //比较次数:21
            // 输出结果
            for (int k = 0; k < arr.length; k++) {
                System.out.print(arr[k] + " ");
            }
        }
    }
  • 相关阅读:
    win10x64位系统中nodejs的安装和配置
    My97 DatePicker获取自定义日期的前一天
    easyUI在使用字符串拼接时样式不起作用,点击加号增加一行,点击减号删除一行效果。
    easyUI datagarid单元格动态合并
    js单体内置对象
    [BZOJ 1878][SDOI2009]HH的项链
    [BZOJ 3932][CQOI2015]任务查询系统
    [BZOJ 3123] 森林
    [BZOJ 3295] 动态逆序对
    [BZOJ 1901] Dynamic Rankings
  • 原文地址:https://www.cnblogs.com/xlwu/p/13170599.html
Copyright © 2011-2022 走看看