介绍本文了解快速排序。快速排序快速排序(英语:Quicksort),又称分区交换排序(partition-exchangesort),简称快速排序,一种排序算法,由TonyHall首先提出。平均而言,对n项进行排序需要O(nlogn)次比较。在最坏的情况下,它需要O(n2)次比较,但这种情况并不常见。事实上,快速排序O(nlogn)通常比其他算法快得多,因为它的内部循环可以在大多数体系结构上高效地实现。步骤是:从数组中选取一个元素,称为“pivot”,对数组重新排序,所有小于pivot值的元素放在pivot前面,所有大于pivot值的元素放在pivot后面(即相同的数字可以去任何一方)。本次划分结束后,基准处于序列的中间。这称为分区操作。对小于基值的元素子数组和大于基值的元素子数组进行递归排序。递归到底层时,数组的大小为零或一,即已经排序。这个算法肯定会结束,因为在每次迭代(iteration)中,它都会将至少一个元素放在它最后的位置。维基百科中的介绍。核心思想是使用递归,下面的动画很形象。动画示例2[1]=>3[2]=>8[3]=>16[4]=>21[5]=>23[6]=>24[7]=>32[8]=>33)参考资料:快速排序,PHP快速排序算法,GIF演示排序算法。
