快速排序可谓是排序算法中最有名的算法了,虽然说名字叫快速但是平均时间复杂度达到了O(n * log n)只能说是较快吧,如果最坏情况下时间复杂度可以达到O(n ^ 2)
快速排序也是递归的最经典的一个用例
下面直接上代码吧:
function qsort(arr) { //基线条件,就是最后跳出递归的条件 //通常都会返回0或1个值 if (arr.length < 2) { return arr } //递归条件 else { let mid = arr[0] let low = [] let high = [] for (let i = 1; i<arr.length; i++) { if (arr[i] <= mid) { low.push(arr[i]) } else { high.push(arr[i]) } } return qsort(low).concat(mid).concat(qsort(high)) } }