陣列--氣泡排序
阿新 • • 發佈:2022-05-05
相鄰兩個元素進行比較,將一個數組中的數字使用迴圈進行升序或降序的排列 var arr = [3,2,1]; // ---> [1,2,3] // 相鄰的元素比較,就是下標i的元素跟下標i+1的元素比較 - 所以迴圈要比正常的遍歷少一次 for(var i=0;i<arr.length-1;i++){ // 如果前面的元素比後面的元素大 if(arr[i]>arr[i+1]){ // 則交換位置 var tmp = arr[i] arr[i] = arr[i+1] arr[i+1] = tmp } } // 這個迴圈結束後,arr變為:[2,1,3] // 所以需要繼續排列 for(var i=0;i<arr.length-1;i++){// 如果前面的元素比後面的元素大 if(arr[i]>arr[i+1]){ // 則交換位置 var tmp = arr[i] arr[i] = arr[i+1] arr[i+1] = tmp } } // 這個迴圈結束後,arr變為:[1,2,3] // 兩個迴圈程式碼是重複的,所以用迴圈處理。3個元素迴圈兩次,4個元素迴圈3次,所以迴圈重複的次數也是陣列長度-1 for(var j=0;j<arr.length-1;j++){ for(var i=0;i<arr.length;i++){ if(arr[i]>arr[i+1]){ var tmp = arr[i] arr[i] = arr[i+1] arr[i+1] = tmp } } } // 如果要降序排序,就將判斷條件中的>改為<即可