美文网首页
冒泡排序

冒泡排序

作者: 柚子硕 | 来源:发表于2020-04-20 19:14 被阅读0次
    var numbers = [3,6,8,2,1,4,7,5];
    var count = 0; // 记录循环的次数
    // 外层循环:控制趟数,每一趟找到一个最大值
    for (var i = 0; i < numbers.length - 1; i++) {
      // 假设数据排好顺序了
      var isSort = true;
      count++;
      // 内层循环:控制比较的次数,并且判断两个数的大小,把大的数往后移动,小的数往前移动
      for (var j = 0; j < numbers.length - 1 - i; j++) {
        count++;
        // 两两比较     从小到大排序 
        if (numbers[j] > numbers[j + 1]) {
          // 没有排好 
          isSort = false;
          // 交换位置
          var tmp = numbers[j];
          numbers[j] = numbers[j + 1];
          numbers[j + 1] = tmp;
        }
      }
      // 某一趟结束,判断一下排序是否结束
      // 如何判断排序是否排好,根据是否发生了数据交换,如果发生了数据交换说明没有排好
      if (isSort) {
        // 如果排好顺序
        break;
      }
    }
    console.log(numbers);//12345678
    console.log(count);

相关文章

网友评论

      本文标题:冒泡排序

      本文链接:https://www.haomeiwen.com/subject/xfoeuhtx.html