fezaoduke / fe-practice-hard

晚练课
69 stars 6 forks source link

第 86 期(算法-排序):经典排序算法之冒泡排序 #89

Open wingmeng opened 5 years ago

wingmeng commented 5 years ago

冒泡排序

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。

bubbleSort

算法分析:

  1. N 个数字要排序完成,总共进行 N-1 趟排序,每 i 趟的排序次数为 (N-i) 次,所以可以用双重循环语句,外层控制循环多少趟,内层控制每一趟的循环次数;
  2. 冒泡排序每进行一趟排序都会找出一个较大值,所以每一趟都会比上次少比较一次。
function bubbleSort(arr) {
  var len = arr.length;

  for (var i = 0; i < len - 1; i++) {
    for (var j = 0; j < len - 1 - i; j++) {
      if (arr[j] > arr[j + 1]) {  // 相邻元素两两对比
        var temp = arr[j + 1];

        // 元素交换
        arr[j + 1] = arr[j];
        arr[j] = temp;
      }
    }
  }

  return arr;
}