手写冒泡排序

// 冒泡排序原理:
// 把第一项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;
    }
  }
}

 

posted @ 2020-03-01 13:37  木易锅巴  阅读(769)  评论(0编辑  收藏  举报