一共比较length-1轮。每轮会挨个用当前数和后一个数比较,如果前面的数大于后面的数,则调换位置,否则就不动。每轮比较的次数依次减一,因为每轮比较都会把最大的值放到了末尾,就不必再比较后面已经排好的最大值了。

    冒泡排序 - 图1

    1. function bubble(arr) {
    2. for(i=0; i<arr.length-1; i++) {
    3. for(j=0; j<arr.length-1-i; j++) {
    4. if(arr[j] > arr[j+1]) {
    5. [arr[j], arr[j+1]] = [arr[j+1], arr[j]];
    6. }
    7. }
    8. }
    9. return arr
    10. }