0132 算法的概念、冒泡排序

算法:观察执行过程,找到规律,转为代码。

// 冒泡排序
// var arr = [5, 4, 3, 2, 1];
var arr = [4, 1, 2, 3, 5];
// 外层循环管趟数 【5个元素,冒泡排序4趟,应该是arr.length - 2,结果一样】
for (var i = 0; i <= arr.length - 1; i++) {
  for (var j = 0; j <= arr.length - i - 1; j++) { // 里面的循环管 每一趟的交换次数
    // 内部交换2个变量的值 前一个和后面一个数组元素相比较
    if (arr[j] < arr[j + 1]) {
      // [arr[j], arr[j+1]] = [arr[j+1], arr[j]]  // 利用解构
      var temp = arr[j];
      arr[j] = arr[j + 1];
      arr[j + 1] = temp;
    }
  }
  console.log(i);
}
console.log(arr);


// 我的写法1
var arr = [4, 1, 9, 2, 7, 3, 5];
var len = arr.length;
// i <= len - 2,i <= len - 1,结果都一样
for (var i = 0; i <= len - 2; i++) {
  for (j = 0; j <= len - i - 1; j++) {
    if (arr[j] > arr[j + 1]) {
      var temp = arr[j];
      arr[j] = arr[j + 1];
      arr[j + 1] = temp;
    }

  }
}
console.log(arr); // [1, 2, 3, 4, 5, 7, 9]


// 我的写法2
var arr = [4, 1, 9, 2, 7, 3, 5];
var len = arr.length;

for (var i = 0; i < len; i++) {
  var temp;
  for (var j = i; j < len; j++) {
    if (arr[j] > arr[j + 1]) {
      temp = arr[j];
      arr[j] = arr[j + 1];
      arr[j + 1] = temp;
    }
  }
}
console.log(arr); // [1, 2, 3, 4, 5, 7, 9]

posted on 2020-01-04 12:07  冲啊!  阅读(206)  评论(0编辑  收藏  举报

导航