JavaScript數組冒泡排序

不分語言的冒泡排序

var arr = [2, 5, 8, 3, 11, 45];  //arr.length = 6
for (var i = 1; i < arr.length; i++) {//外層控制次數5次
   for (var j = 0; j < arr.length - i; j++) {  //內層控制比較的次數
       if (arr[j] < arr[j + 1]) { //交換位置
           var temp = arr[j + 1];
           arr[j + 1] = arr[j];
           arr[j] = temp;
       }
   }
}
document.write(arr.join(","));

思路:
內置排序排序
如何找到最小值 讓它到最後的位置
第一輪 比較了5次
比較第一位和第二位 [5,2,8 ,3,11,45]
比較第二位和第三位 [5,8,2,3,11,45]
比較第三位和第四位 [5,8,3,2,11,45]
比較第四位和第五位 [5,8,3,11,2,45]
比較第五位和第六位 [5,8,3,11,45,2]
第二輪 比較了4次
比較第一位和第二位 [8,5,3,11,45,2]
比較第二位和第三位 [8,5,3,11,45,2]
比較第三位和第四位 [8,5,11,3,45,2]
比較第四位和第五位 [8,5,11,45,3,2]
第三輪 比較了3次
比較第一位和第二位 [8,5,11,45,3,2]
比較第二位和第三位 [8,11,5,45,3,2]
比較第三位和第四位 [8,11,45,5,3,2]
第四輪 比較2次
比較第一位和第二位 [11,8,45,5,3,2]
比較第二位和第三位 [11,45,8,5,3,2]
第五輪 比較3次
比較第一位和第二位 [45,11,8,5,3,2]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章