数据结构&算法 快速排序
-
快速排序
快速排序是一种高效的排序算法,它基于将数据数组划分为较小的数组。将一个大数组分为两个数组,其中一个数组的值小于指定值(例如,枢轴),基于该数组进行分区,另一个数组的值大于该枢轴值。快速排序对数组进行分区,然后递归调用两次以对两个结果子数组进行排序。该算法对于大型数据集非常有效,因为其平均和最坏情况下的复杂度分别为O(nLogn)和O(logn2)。 -
快速排序分区
下面的动画表示法说明了如何在数组中查找枢轴值。枢轴值将列表分为两部分。递归地,我们找到每个子列表的枢纽,直到所有列表仅包含一个元素。 -
快速排序枢轴算法
基于对快速分区的理解,我们现在尝试为它编写一个算法,如下所示。 -
伪码
上面算法的伪代码可以推导为- -
快速排序算法
递归地使用数据透视算法,我们最终得到了较小的分区。然后处理每个分区以进行快速排序。我们为快速排序定义递归算法,如下所示:- -
快速排序伪代码
要了解更多信息,请参阅快速排序算法的伪代码-- -