- 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)
稳定性:不稳定