1、快速排序算法实现方式
快速排序的核心思想是分治法,分而治之。它的实现方式是每次从序列中选出一个基准值,其他数依次和基准值做比较,比基准值大的放右边,比基准值小的放左边,然后再对左边和右边的两组数分别选出一个基准值,进行同样的比较移动,重复步骤,直到最后都变成单个元素,整个数组就成了有序的序列。
简单概括如下:
-
从数列中挑出一个元素,称为 “基准”(pivot);
-
重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作;
-
递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序;
2、快速排序算法动画演示
3、图解快速排序算法
我们以[ 8,2,5,0,7,4,6,1 ]这组数字为例来进行演示
首先,我们随机选择一个基准值:
与其他元素依次比较,大的放右边,小的放左边:
然后我们以同样的方式排左边的数据:
继续排 0 和 1