冒泡排序(个人理解如有问题请指出)

给你一囗甜甜゛ 提交于 2019-11-28 04:58:39
sort() {
  let arr = [12, 5, 2, 1, 3, 6476, 4, 8, 47, 5644, 51];
  let temp = ""; 
  let count = 0;
  for (let i = 0; i < arr.length - 1; i++) { //有N个数只需要进行N-1次循环比较
    let flag = true;//定义flag作为判断,减少循环次数如果第二个for循环已经比较完所有    的数让flag为false
    for (let j = 0; j < arr.length - i - 1; j++) {// 减 i 的原因是每次循环之后都会将最大数置最有内部循环比较不需要再与最后一个数进行比较
      if (arr[j] > arr[j + 1]) {
        temp = arr[j + 1];
        arr[j + 1] = arr[j];
        arr[j] = temp;
        flag = false;
      }
      count++;
    }
    if (flag) {
      break;
    }
    console.log(arr);
    console.log(count);
  }
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!