Quicksort(英文:Quicksort),又称分区交换排序(partition-exchangesort),简称快速排序,一种排序算法,最早由TonyHall提出。平均而言,对n项进行排序需要O(nLogn)次比较。在最坏的情况下,需要进行O(n^2)次比较,但这并不常见。事实上,快速排序O(nLogn)通常明显快于其他算法,因为它的内循环(innerloop)可以在大多数架构上高效地实现快速排序。可能大家都学过,在面试中也学过。经常遇到即使是做前端,也需要会写。下面给出两种不同的快速排序代码进行分析。快速排序的三个基本步骤:从数组中选择一个元素作为参考点对数组进行排序,基值较小的元素放在左边,大于基值的元素放在右边。每次拆分后,将在中间插入参考值。最后用递归分别对左边的数组和右边的数组进行上述1和2的操作。为了更深入的理解,您可以看下图。基于上图,我们用文字描述一下左右元素的选择作为参考编号。7会将小于7的元素放在左边,大于7的元素放在右边,然后把引用数放在中间,重复这个操作。从左侧阵列中选择一个参考点。如果23大于2,则将其放在参考树的右侧。右数组也是如此。选择12作为参考编号。15比12大,所以放在12的右边。最后的结果从左到右依次为2、3、7、12、15。以上就是快速排序的一个基本实现思路。快速排序实现方法一这是最近看到的快速排序代码varquickSort=function(arr){if(arr.length<=1){returnarr;}varpivotIndex=Math.floor(arr.length/2);varpivot=arr.splice(pivotIndex,1)[0];变左=[];变种权利=[];for(vari=0;i
