1.比較相鄰的元素。如果第一個比第二個大,就交換它們兩個
2.對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最后一對,這樣在最后的元素應該會是最大的數
3.除去最右的元素,我們對剩余的元素做同樣(1、2)的工作,如此重復下去,直到排序完成。
這里我們把排序的方法封裝到Array的原型鏈對象上,這樣隨便一個數組就可以直接調用了
Array.prototype.bubbleSort = function() {
let len = this.length
for (let j=1; j<len; j++) {
for (let i=0; i<len-j; i++) {
// 開始比較,如果第一個數大於第二個數就進行交換,這樣大的就到后面去了
if (this[i] > this[i+1]) {
let tempnum = this[i+1]
this[i+1] = this[i]
this[i] = tempnum
}
}
}
}
let arr = [2,9,5,7,1,1,6,3,3,4]
console.log("原來:", arr.toString())
// 原來: 2,9,5,7,1,1,6,3,3,4
arr.bubbleSort()
console.log("排序后:", arr.toString())
// 排序后: 1,1,2,3,3,4,5,6,7,9
