將數組元素從下標爲0與下標爲1,arr[i]與arr[i+1]逐次開始兩兩比較arr.length-r-1,共進行arr.length-1輪,每一輪比較後將排出一位最大值。數組
先聲明外循環輪數 r的區間範圍是,應該是從第一次開始,比元素個數arr.length少一次bash
每輪arr[i]與arr[i+1]兩兩逐次比較,比較完第一輪後,將把數組最大的元素排在最後markdown
第二輪比較的時候,就不須要再去重複比較第一輪排出的下標爲arr.length-1的最大的元素,排的是第二大的元素oop
由於arr[i]與arr[i+1]作比較,要保證下標i+1是最大下標,因此i<arr.length-2,ui
根據循環輪數r,與i的規律,每循環一輪,將排好一位元素,且再一輪就不須要重複排已經排好隊的,依次類推,每次排好一輪以後,將arr.length-1。spa
具體代碼:code
//因此將下標i的區間範圍在i<arr.length-r for(var r=1;r<arr.length;r++){ //根據循環輪數r,與i的規律,每循環一輪,將排好一位元素,且再一輪就不須要重複排已經排好隊的,依次類推,每次排好一輪以後,將arr.length-r for(var i=0;i<arr.length-r;i++){ if(arr[i]>arr[i+1]){ var temp; //知足條件,兩兩交換位置 temp=arr[i]; //不知足則跳出後,保持不變繼續下一輪 arr[i]=arr[i+1]; arr[i+1]=temp; } } } console.log(arr) }複製代碼