JS实现快速排序

2017年01月08日Web前端0

快速排序,通过选择一个基准值将数据分割成独立的左右两部分,其中左侧数据比基准值都小,右侧比基准值都大,然后对左右两个数据集采用前面的方法不断重复进行,直到排列完成。

JS实现快速排序:

function quickSort(arr) {
    var len = arr.length;
    if (0 == len) {
        return [];
    }
    var lesser = [],
        greater = [],
        pivot = arr[0];
    for (var i = 1; i < len; ++i) {
        if (arr[i] < pivot) {
            lesser.push(arr[i]);
        } else {
            greater.push(arr[i]);
        }
    }
    return quickSort(lesser).concat([pivot], quickSort(greater));
}

利用递归很快实现了快速排序,在chrome控制台下的运行效果如下图。

快速排序效果图