手写冒泡排序

半城伤御伤魂 提交于 2020-03-01 14:20:07
// 冒泡排序原理:
// 把第一项a和后一项b进行比较,如果a比b大,那么把第一项后移,第二项前移。
// 也就是把第一项变成b,把第二项变成a,依次循环,把每一项都执行一遍。
let arr = [1, 2, 4, 8, 5, 10, 9, 7, 6];
// 减1是为了最后一项不用再和后面的进行比较了,减去j也是不用对当前j进行循环
let isOk = true;
for (let j = 0; j < arr.length -1; j ++) {
  for (let i = 0; i < arr.length - 1 - j; i ++) {
    let a = arr[i];
    let b = arr[i + 1];
    if (a > b) {
      arr[i] = b;
      arr[i + 1] = a;
      isOk = false;
    }

    if (isOk) { // 如果已经排好,就不继续循环排序
      break;
    }
  }
}

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!