js 冒泡排序


算法:假設有n個人排成一行,每人手里都有一個數字,第一個人跟后一個人說你手里的數學比我小(大)嗎?回答說小,兩個人就互換了位置,一隊下來是n-1次比較,
    最終使得最后一個人手里的數字是最小(大)的。即 每一小循環(輪)確定一個最小或最大的數!
代碼: 假設,總比較數量有s個數,當輪要比較數n=(s-i)個,則得比較s-1輪(外層循環),每輪比較n-1次(內層循環)

        var arr=[311,42,33,5,21,6,7,312];
        console.log(arr); 
        for (var i=0;i<arr.length-1;i++){ // 輪:s-1輪
            for (var j=0;j<arr.length-i-1;j++){ //比較次數: (s-i)-1比較次數
                if(arr[j]>arr[j+1]){//交換邏輯
                    var sub=arr[j+1];
                    arr[j+1]=arr[j];
                    arr[j]=sub;
                }
            }
        }
        console.log(arr);

點擊查看代碼


免責聲明!

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



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