• java 实现冒泡排序


    1. 先循环一次将数组内部的最大元素排序到最后一位
    import java.util.Arrays; 
    public class Main {
    	public static void main(String[] args) {
    		int[] arr1 = {2, 5, 8, 4, 3};
    		for (int i = 0; i < arr1.length - 1 ; i++){
                int tag ;
                if(arr1[i] > arr1[i+1]){
                    tag = arr1[i];
                    arr1[i] = arr1[i+1];
                    arr1[i+1] = tag;
                }
    		} 
    
    	     System.out.println(Arrays.toString(arr1)); // [2, 5, 4, 3, 8]
    
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    1. 我们在上面经过一次循环将8排序到了最后一位, 如果想将5排序到倒数第二位, 应该再走一次循环
    import java.util.Arrays; 
    public class Main {
    	public static void main(String[] args) {
    		int[] arr1 = {2, 5, 8, 4, 3};
    		for (int i = 0; i < arr1.length - 1 ; i++){
                int tag ;
                if(arr1[i] > arr1[i+1]){
                    tag = arr1[i];
                    arr1[i] = arr1[i+1];
                    arr1[i+1] = tag;
                }
    		} 
    	     System.out.println(Arrays.toString(arr1)); // [2, 5, 4, 3, 8]
    		
    		// 这里 -2 的目的是因为最后一位已经是排列的好的了, 不用再排序了
             for (int i = 0; i < arr1.length - 2 ; i++){
                int tag ;
                if(arr1[i] > arr1[i+1]){
                    tag = arr1[i];
                    arr1[i] = arr1[i+1];
                    arr1[i+1] = tag;
                }
    		} 
    	     System.out.println(Arrays.toString(arr1)); // [2, 4, 3, 5, 8]
    
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    1. 思考一下, 如果我想将剩下的 3 个元素排序是不是还要执行三遍的循环呢
    import java.util.Arrays; 
    public class Main {
    
        // 排序方法实现
        private static void sort (){
            int[] arr1 = {2, 5, 8, 4, 3};
    
            for(int j = 0; j < arr1.length - 1; j++){
                for (int i = 0; i < arr1.length -1 - j ; i++){
                    int tag ;
                    if(arr1[i] > arr1[i+1]){
                        tag = arr1[i];
                        arr1[i] = arr1[i+1];
                        arr1[i+1] = tag;
                    }
    		    }  
            }
          
    	    System.out.println("排序结果" + Arrays.toString(arr1));
        }
    
    	public static void main(String[] args) {
    		int[] arr1 = {2, 5, 8, 4, 3};
    
    		for (int i = 0; i < arr1.length - 1 ; i++){
                int tag ;
                if(arr1[i] > arr1[i+1]){
                    tag = arr1[i];
                    arr1[i] = arr1[i+1];
                    arr1[i+1] = tag;
                }
    		} 
    	     System.out.println(Arrays.toString(arr1));
    
             for (int i = 0; i < arr1.length - 2 ; i++){
                int tag ;
                if(arr1[i] > arr1[i+1]){
                    tag = arr1[i];
                    arr1[i] = arr1[i+1];
                    arr1[i+1] = tag;
                }
    		} 
    	    System.out.println(Arrays.toString(arr1));
    
            Main.sort();
    	}
    
     
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49

    代码地址

  • 相关阅读:
    【线上问题】服务器关机导致docker启动的mysql数据库消失了
    解决tomcat时区错误问题
    ⑪霍兰德RC*型如何选专业?高考志愿填报选专业
    AutoCAD的各种方法
    【Java八股文总结】之面试题(二)
    ubuntu 20.04安装开发环境总结_安装python
    Rockland丨艾美捷Rockland小鼠γ-球蛋白介绍
    Java:Springboot和React中枚举值(数据字典)的使用
    【ETH】【方案】如何获取以太坊内部交易?
    2022年全网最全AI绘画产品整理(一共23款,免费的绘画次数用到你手软)
  • 原文地址:https://blog.csdn.net/weixin_43191327/article/details/126685762