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] + " ");
            }
        }
    }
  • 相关阅读:
    工具类
    开发中用到的工具
    项目中另外添加有用的文件:404
    如何组织项目结构:约定优于配置
    媒体查询
    响应式网站开发需要掌握的技术及国内外主流浏览器
    响应式网站概念
    sql存储过程,raisError后要return错误代码,过程最后要return 0
    delphi用TAdoStoredProc调用存储过程,兼容sql2005、2008、2014的远程事务问题
    网页视频下载牛逼工具,支持各种格式转换,比如腾讯视频格式qlv转mp4
  • 原文地址:https://www.cnblogs.com/xlwu/p/13170599.html
Copyright © 2011-2022 走看看