十大经典排序算法
冒泡排序(Bubble Sort)
两两对比,大的放后面,一轮之后,可以获取到最大值放在最后;O(n*n)
javascript
let arr = [1, 3, 7, 5, 6, 2, 4]
function bubbleSort(arr) {
const len = arr.length;
for (let i = 0; i < len - 1; i++) {
for (let j = 0; j < len - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
// 交换元素位置
[arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
}
}
}
return arr;
}
插入排序(Insertion Sort)
当前项与前面所有的项进行比较,然后放到合适的位置,一轮过去就结束了;O(n*n)
选择排序(Selection Sort)
所有不确定的项进行比较,找出最小值,放到最前面,一轮之后,获取到最小值
归并排序(Merge Sort)
快速排序(Quick Sort)
先找到一个基准点(一般指数组的中部),然后数组被该基准点分为两部分,依次与该基准点数据比较,如果比它小,放左边;反之,放右边。
左右分别用一个空数组去存储比较后的数据。
最后递归执行上述操作,直到数组长度 <= 1;