js常见排序算法实现

  • A+
所属分类:Web前端
摘要

原理:对数组进行遍历,根据相邻两个元素大小进行交换,每一次遍历都将最小值推至最前方,然后对剩下的值再次进行比较


1.冒泡排序

原理:对数组进行遍历,根据相邻两个元素大小进行交换,每一次遍历都将最小值推至最前方,然后对剩下的值再次进行比较

空间复杂度:O(1)

时间复杂度:O(n^2)

稳定性:稳定

// 冒泡排序 function bubbleSort(arr) {     let len = arr.length - 1, tmp     for (let i = 0; i < len; i++) {         for (let j = 0; j < len - i; j++) {             if (arr[j] > arr[j + 1]) {                 tmp = arr[j]                 arr[j] = arr[j + 1]                 arr[j + 1] = tmp             }         }     }     return arr }

2.快速排序

原理:从数组中取一个基准值,将剩下的值与基准值比较,小于的放到左边,大于的放到右边,并对左右两边进行快速排序,重复直到左右两边只剩一个元素,最后合并

平均时间复杂度O(nlogn)

最坏时间复杂度:O(n^2)

稳定性:不稳定