Skip to content

十大经典排序算法


冒泡排序(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;

希尔排序(Shell Sort)

堆排序(Heap Sort)

桶排序(Bucket Sort)

计数排序(Counting Sort)

基数排序(Redix Sort)

参考链接