冒泡排序原理:相邻的两个元素进行比较,大的放在后面。使用这个方法遍历数组即可完成排序。

    4208590040-5ac42b210af83_articlex.gif

    我们现在对 [2, 15, 7, 5, 215, 91] 进行排序

    1. let A = [2, 15, 7, 5, 215, 91];
    2. for (let m = 0; m < A.length-1; m++) {
    3. for (let i = 0; i < A.length-1; i++) {
    4. if (A[i] > A[i + 1]) {
    5. let temp = A[i];
    6. A[i] = A[i + 1];
    7. A[i + 1] = temp;
    8. }
    9. }
    10. }
    11. console.log(A)

    因为数组的顺序复杂程度,排序次数也有所不同,例如 [1,2,4,3,5] 的冒泡排序所需次数肯定比 [2,3,5,4,1] 的次数少,[1,2,4,3,5] 遍历数组一次就可以得到正确的顺序,多遍历了数组4次,降低了性能,我们只需要设置一个中间态监听状态就可以终止遍历。

    1. let A = [2, 15, 7, 5, 215, 91];
    2. for (let m = 0; m < A.length; m++) {
    3. let state = true;
    4. for (let i = 0; i < A.length; i++) {
    5. if (A[i] > A[i + 1]) {
    6. let temp = A[i];
    7. A[i] = A[i + 1];
    8. A[i + 1] = temp;
    9. state = false;
    10. }
    11. }
    12. if(state) break;
    13. }
    14. console.log(A)