Java_冒泡排序_原理及優化


冒泡排序及其優化

一.原理及優化原理

  1.原理講解

    冒泡排序即:第一個數與第二個數進行比較,如果滿足條件位置不變,再把第二個數與第三個數進行比較.不滿足條件則替換位置,再把第二個數與第三個數進行比較,以此類推,執行完為一個趟,趟數等於比較的個數減一.

  2.冒泡排序原理圖示:(以98765序列為例,排序結果從小到大)

   

  3.冒泡排序優化

  優化版:每一次減少一次循環(即紅色部分不需要在進行比較)

  

  4.冒泡排序最終版

  最終版:每一趟減少一次循環(刪除線不需要再執行)

  

 

二.實現代碼

  1.冒泡排序實現主要代碼

  
public static void main(String[] args) {
        int []arr={9,8,7,6,5};
        
        int len=arr.length;
        
        for (int i=0;i<len-1;i++) {
            
            for (int j=0;j<len-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));

    }
冒泡排序實現代碼

 

 

  

  2.冒泡排序優化代碼

  
public static void main(String[] args) {
        int []arr={9,8,7,6,5,10};

        int len=arr.length;

        for (int i=0;i<len-1;i++) {

            for (int j=0;j<len-1-i;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));

    }
冒泡排序優化代碼

 

 

  

  3.冒泡排序最終代碼

  
public static void main(String[] args) {
        int []arr={9,8,7,6,5};
        
        int len=arr.length;
        
        for (int i=0;i<len-1;i++) {
            System.out.println("第"+(i+1)+"趟");
            //增加判斷位
            boolean flag=true;
            for (int j=0;j<len-1-i;j++) {
                System.out.println("第"+(j+1)+"次");
                
                if(arr[j]>arr[j+1]){
                    int temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                    flag=false;
                }
                System.out.println(Arrays.toString(arr));
            }
            //如果上面沒有執行直接退出
            if(flag){
                break;
            }
        }
        System.out.println(Arrays.toString(arr));

    }
冒泡排序最終版

 

三.注意事項

  1.多思考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM