1. 程式人生 > 其它 >陣列--氣泡排序

陣列--氣泡排序

相鄰兩個元素進行比較,將一個數組中的數字使用迴圈進行升序或降序的排列

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 } } } // 如果要降序排序,就將判斷條件中的>改為<即可