冒泡排序

/***
 * 冒泡排序算法描述
 * 1、比较相邻的元素,如果前一个比后一个大,交换之。
 * 2、第一趟排序第1个和第2个一对,比较与交换,随后第2个和第3个一对比较交换,
 *    这样直到倒数第2个和最后1个,将最大的数移动到最后一位。
 * 3、第二趟将第二大的数移动至倒数第二位
 */
const arr = [3, 2, 4, 5, 1]
const len = arr.length
for (let i = 0; i < len - 1; i++) {
  for (let j = 0; j < len - i - 1; j++) {
    /**
     * arr[j] > arr[j + 1] 为升序
     * arr[j] < arr[j + 1] 为降序
     */
    if (arr[j] > arr[j + 1]) {
      let t = arr[j]
      arr[j] = arr[j + 1]
      arr[j + 1] = t
    }
  }
}

参考如下动图


77ad6f33ba0dc82446a74f109dd7c645.gif
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容