[javascript] 冒泡排序和快速排序

648 阅读1分钟

Prerequisite

这么多年,第一次遇上这么长的假期。转眼间已经出来工作两年了,也应该写写文章,多学习多总结。

冒泡排序 Bubble Sort

冒泡排序,时间复杂度 O(n²)。

function bubbleSort(a) {
    for (let i = a.length - 1; i > 0; i -= 1) {
        for (let j = 0; j < i; j += 1) {
            if (a[j] > a[i]) {
                [a[j], a[i]] = [a[i], a[j]];
            }
        }
    }
    return a;
}

快速排序 Quick Sort

快速排序,时间复杂度O (nlogn)。选出一个基准值,然后通过交换进行排序。

function quickSort(a, low, heigh) {
    if (low >= heigh) return a;
    let temp = a[low];
    let i = low;
    let j = heigh;
    while (i < j) {
        while (i < j && a[j] >= temp) j -= 1;
        a[i] = a[j];
        while (i < j && a[i] <= temp) i += 1;
        a[j] = a[i];
    }
    a[i] = temp;
    quickSort(a, low, i - 1);
    quickSort(a, i + 1, heigh);
    return a;
}

最后

武汉加油,希望疫情尽快得到控制和治疗。