本文转载自微信公众号《JS每日一问》,作者慧慧。转载本文请联系JS每日一问公众号.1、什么是快速排序(QuickSort)算法是在冒泡排序的基础上改进的一种算法。从名字我们就知道排序算法的特点是速度快、效率高,是处理大数据最快的方法。其中一种排序算法实现的基本思想是:通过一次排序将整个无序列表分成两个独立的部分,其中一部分的数据小于另一部分包含的数据,然后继续使用这种方法来separatethetwoparts进行同样的操作,直到每一小部分都不能再分割,得到的整个序列就变成了一个有序序列。例如,对无序列表49,38,65,97,76,13,27,49进行快速排序,一般过程如下:首先从表中选取一条记录的key作为分割点(称为“支点”或支点,一般选择第一个键),例如选择49,将49以上的表放在49的右边,小于49的放在49的左边,假设完整的无序列表为:{27,38,13,49,65,97,76,49}以49为支点,整个无序列表分为两部分,即{27,38,13}和{65,97,76,49},继续用这个方法分别对两个子表进行排序。前分表以27为支点,排序后的分表为{13,27,38},这部分已经有序了;后面的子表以65为支点,排序后的子表为{49,65,97,76}。此时,上半部分的子表中的数据已经完成排序;后半部分的分表继续以65为支点,分为{49}和{97,76}。前者不需要排序,后者经过上述步骤排序后的结果为{76,97},最后由子表{13,27,38},{49组成一个有序列表},{49},{65},{76,97}:{13,27,38,49,49,65,76,97}2.如何实现可以分为以下几个步骤:Partitioning:selectanybenchmark从数组中取出,所有小于benchmark的元素放在benchmark的左边,大于benchmark的元素放在benchmark的右边子数组划分代码如下:functionquickSort(arr){constrec=(arr)=>{if(arr.length<=1){returnarr;}constleft=[];constright=[];constmid=arr[0];//基本元素for(leti=1;i
