前端开发使用的4种简单排序算法
/*
* @Author: advance.YiYunmu
* @Date: 2019-10-14 09:32:54
* @Last Modified by: advance.YiYunmu
* @Last Modified time: 2019-10-14 17:30:43
* 常见排序
*/
let arr = [2, 4, 9, 1, 50, 26, 80, 44, 38]
/**,
* 冒泡排序:冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。
* 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。
* 走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
* 这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端。
* @param {Array} a 数组
* @param {Boolean} minOrmax 默认升序 true为降序
*/
function bubbleSort(a, minOrmax = false) {
//新建数组不改变原数据
let arr = Array.from(a)
//n-1趟排序
for (let i = 0; i < arr.length - 1; i++) {
/**
* 每次排序都确定最大的值在最后(-i的作用是减少不必要的对比操作,
* 第i排序已经确定i个数据的位置所以不用再作对比是一个小优化)
*/
for (let j = 0; j < arr.length - 1 - i; j++) {
if (minOrmax ? arr[j] < arr[j + 1] : arr[j] > arr[j + 1]) {
let temp = arr[j