快速排序算法手动演示

快速排序(QuickSort)是一种高效的排序算法,采用分治法策略来把一个序列分为较小和较大的两个子序列,然后递归地排序两个子序列。

0
1
2
3
4
5
6
7
8
9

操作说明

点击下方"生成随机数字"按钮,在前10个格子中生成随机数字。您可以手动拖拽这些数字到其他空格中,模拟快速排序中的元素交换过程。

新功能:现在可以按住 Ctrl 键选择多个数字,然后将它们一起拖拽到空位置。

算法原理

快速排序的基本思想是:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。

算法步骤

  1. 从数列中挑出一个元素,称为"基准"(pivot)
  2. 重新排序数列,所有比基准值小的元素摆放在基准前面,所有比基准值大的元素摆在基准后面(相同的数可以到任一边)。在这个分区结束之后,该基准就处于数列的中间位置。这个称为分区(partition)操作
  3. 递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序