javascript快速排序的思考

还记得三个月前,学习过快速排序,示例所讲的python快速排序十分易于理解,然而网上学习的c#的快速排序当时就懵逼的,现在已经全忘了,大概记得个思路
在学习完了一些高级的js方法后,今天用js模拟了python的快速排序方式

function mySort(nums) {
    if (nums.length < 2) {
        return nums;
    }
    let key = nums.shift();
    let less = nums.filter(value => value < key);
    let greater = nums.filter(value => value >= key);
    return [...mySort(less), key, ...mySort(greater)];
}

这样也能实现同样的效果,并且利用了递归,但是还是不明白这里的时间复杂度是怎么计算的,这种方式到底算快速排序吗?比挖坑换位好理解多了。

posted @ 2018-08-07 14:06  zyzyzyzyzyzyzyzy  阅读(76)  评论(0编辑  收藏  举报