冒泡排序


"en">

  "UTF-8">
  "viewport" content="width=device-width, initial-scale=1.0">
  "X-UA-Compatible" content="ie=edge">
  冒泡排序




 

外层循环从第一次循环到最后一次,比如 [5, 4, 3, 2, 1] 这个数组我们循环了五次

for (let i = 0; i < length; i++) { // {2}

循环了五次

内循环将从第一位迭代至倒数第二位,内循环实际上进行当前项和下一项的比较(行{4})。如果这两项顺序不对(当前项比下一项大),则交换它们(行{5}),意思是位置为j+1的值将会被换置到位置j处,反之亦然。

for (let j = 0; j < length - 1; j++) { 

对比函数:

 function defaultCompare(a,b) {
    return a < b ? 0 : 1
  }

如果a小于b 就返回 数值 0,a大于b 就返回数据 1  ,当返回数据1  的时候我们进行数值交换 

 

 function swap(array, a, b) {
    /* const temp = array[a];
    array[a] = array[b];
    array[b] = temp; */ // 经典方式
    [array[a], array[b]] = [array[b], array[a]]; // ES2015的方式
  }

将 a,b 的位置交换

面的示意图展示了冒泡排序的工作过程。

 冒泡排序_第1张图片

 

你可能感兴趣的:(冒泡排序)